Correct PPTP server firewall rules chain.
[tomato/davidwu.git] / release / src / router / openssl / crypto / ppccpuid.pl
blob4ba736a1d1bd99e5af582c9e518ab5e78f12b34a
1 #!/usr/bin/env perl
3 $flavour = shift;
5 $0 =~ m/(.*[\/\\])[^\/\\]+$/; $dir=$1;
6 ( $xlate="${dir}ppc-xlate.pl" and -f $xlate ) or
7 ( $xlate="${dir}perlasm/ppc-xlate.pl" and -f $xlate) or
8 die "can't locate ppc-xlate.pl";
10 open STDOUT,"| $^X $xlate $flavour ".shift || die "can't call $xlate: $!";
12 if ($flavour=~/64/) {
13 $CMPLI="cmpldi";
14 $SHRLI="srdi";
15 $SIGNX="extsw";
16 } else {
17 $CMPLI="cmplwi";
18 $SHRLI="srwi";
19 $SIGNX="mr";
22 $code=<<___;
23 .machine "any"
24 .text
26 .globl .OPENSSL_ppc64_probe
27 .align 4
28 .OPENSSL_ppc64_probe:
29 fcfid f1,f1
30 extrdi r0,r0,32,0
31 blr
32 .long 0
33 .byte 0,12,0x14,0,0,0,0,0
35 .globl .OPENSSL_altivec_probe
36 .align 4
37 .OPENSSL_altivec_probe:
38 .long 0x10000484 # vor v0,v0,v0
39 blr
40 .long 0
41 .byte 0,12,0x14,0,0,0,0,0
43 .globl .OPENSSL_wipe_cpu
44 .align 4
45 .OPENSSL_wipe_cpu:
46 xor r0,r0,r0
47 fmr f0,f31
48 fmr f1,f31
49 fmr f2,f31
50 mr r3,r1
51 fmr f3,f31
52 xor r4,r4,r4
53 fmr f4,f31
54 xor r5,r5,r5
55 fmr f5,f31
56 xor r6,r6,r6
57 fmr f6,f31
58 xor r7,r7,r7
59 fmr f7,f31
60 xor r8,r8,r8
61 fmr f8,f31
62 xor r9,r9,r9
63 fmr f9,f31
64 xor r10,r10,r10
65 fmr f10,f31
66 xor r11,r11,r11
67 fmr f11,f31
68 xor r12,r12,r12
69 fmr f12,f31
70 fmr f13,f31
71 blr
72 .long 0
73 .byte 0,12,0x14,0,0,0,0,0
75 .globl .OPENSSL_atomic_add
76 .align 4
77 .OPENSSL_atomic_add:
78 Ladd: lwarx r5,0,r3
79 add r0,r4,r5
80 stwcx. r0,0,r3
81 bne- Ladd
82 $SIGNX r3,r0
83 blr
84 .long 0
85 .byte 0,12,0x14,0,0,0,2,0
86 .long 0
88 .globl .OPENSSL_rdtsc
89 .align 4
90 .OPENSSL_rdtsc:
91 mftb r3
92 mftbu r4
93 blr
94 .long 0
95 .byte 0,12,0x14,0,0,0,0,0
97 .globl .OPENSSL_cleanse
98 .align 4
99 .OPENSSL_cleanse:
100 $CMPLI r4,7
101 li r0,0
102 bge Lot
103 $CMPLI r4,0
104 beqlr-
105 Little: mtctr r4
106 stb r0,0(r3)
107 addi r3,r3,1
108 bdnz \$-8
110 Lot: andi. r5,r3,3
111 beq Laligned
112 stb r0,0(r3)
113 subi r4,r4,1
114 addi r3,r3,1
115 b Lot
116 Laligned:
117 $SHRLI r5,r4,2
118 mtctr r5
119 stw r0,0(r3)
120 addi r3,r3,4
121 bdnz \$-8
122 andi. r4,r4,3
123 bne Little
125 .long 0
126 .byte 0,12,0x14,0,0,0,2,0
127 .long 0
130 $code =~ s/\`([^\`]*)\`/eval $1/gem;
131 print $code;
132 close STDOUT;