summaryrefslogtreecommitdiff
path: root/src/lib/libcrypto/ppccpuid.pl
diff options
context:
space:
mode:
Diffstat (limited to '')
-rwxr-xr-xsrc/lib/libcrypto/ppccpuid.pl48
1 files changed, 42 insertions, 6 deletions
diff --git a/src/lib/libcrypto/ppccpuid.pl b/src/lib/libcrypto/ppccpuid.pl
index 369e1d0df9..4ba736a1d1 100755
--- a/src/lib/libcrypto/ppccpuid.pl
+++ b/src/lib/libcrypto/ppccpuid.pl
@@ -23,36 +23,67 @@ $code=<<___;
23.machine "any" 23.machine "any"
24.text 24.text
25 25
26.globl .OPENSSL_cpuid_setup 26.globl .OPENSSL_ppc64_probe
27.align 4 27.align 4
28.OPENSSL_cpuid_setup: 28.OPENSSL_ppc64_probe:
29 fcfid f1,f1
30 extrdi r0,r0,32,0
29 blr 31 blr
32 .long 0
33 .byte 0,12,0x14,0,0,0,0,0
34
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
30 42
31.globl .OPENSSL_wipe_cpu 43.globl .OPENSSL_wipe_cpu
32.align 4 44.align 4
33.OPENSSL_wipe_cpu: 45.OPENSSL_wipe_cpu:
34 xor r0,r0,r0 46 xor r0,r0,r0
47 fmr f0,f31
48 fmr f1,f31
49 fmr f2,f31
35 mr r3,r1 50 mr r3,r1
51 fmr f3,f31
36 xor r4,r4,r4 52 xor r4,r4,r4
53 fmr f4,f31
37 xor r5,r5,r5 54 xor r5,r5,r5
55 fmr f5,f31
38 xor r6,r6,r6 56 xor r6,r6,r6
57 fmr f6,f31
39 xor r7,r7,r7 58 xor r7,r7,r7
59 fmr f7,f31
40 xor r8,r8,r8 60 xor r8,r8,r8
61 fmr f8,f31
41 xor r9,r9,r9 62 xor r9,r9,r9
63 fmr f9,f31
42 xor r10,r10,r10 64 xor r10,r10,r10
65 fmr f10,f31
43 xor r11,r11,r11 66 xor r11,r11,r11
67 fmr f11,f31
44 xor r12,r12,r12 68 xor r12,r12,r12
69 fmr f12,f31
70 fmr f13,f31
45 blr 71 blr
72 .long 0
73 .byte 0,12,0x14,0,0,0,0,0
46 74
47.globl .OPENSSL_atomic_add 75.globl .OPENSSL_atomic_add
48.align 4 76.align 4
49.OPENSSL_atomic_add: 77.OPENSSL_atomic_add:
50Loop: lwarx r5,0,r3 78Ladd: lwarx r5,0,r3
51 add r0,r4,r5 79 add r0,r4,r5
52 stwcx. r0,0,r3 80 stwcx. r0,0,r3
53 bne- Loop 81 bne- Ladd
54 $SIGNX r3,r0 82 $SIGNX r3,r0
55 blr 83 blr
84 .long 0
85 .byte 0,12,0x14,0,0,0,2,0
86 .long 0
56 87
57.globl .OPENSSL_rdtsc 88.globl .OPENSSL_rdtsc
58.align 4 89.align 4
@@ -60,6 +91,8 @@ Loop: lwarx r5,0,r3
60 mftb r3 91 mftb r3
61 mftbu r4 92 mftbu r4
62 blr 93 blr
94 .long 0
95 .byte 0,12,0x14,0,0,0,0,0
63 96
64.globl .OPENSSL_cleanse 97.globl .OPENSSL_cleanse
65.align 4 98.align 4
@@ -72,7 +105,7 @@ Loop: lwarx r5,0,r3
72Little: mtctr r4 105Little: mtctr r4
73 stb r0,0(r3) 106 stb r0,0(r3)
74 addi r3,r3,1 107 addi r3,r3,1
75 bdnz- \$-8 108 bdnz \$-8
76 blr 109 blr
77Lot: andi. r5,r3,3 110Lot: andi. r5,r3,3
78 beq Laligned 111 beq Laligned
@@ -85,10 +118,13 @@ Laligned:
85 mtctr r5 118 mtctr r5
86 stw r0,0(r3) 119 stw r0,0(r3)
87 addi r3,r3,4 120 addi r3,r3,4
88 bdnz- \$-8 121 bdnz \$-8
89 andi. r4,r4,3 122 andi. r4,r4,3
90 bne Little 123 bne Little
91 blr 124 blr
125 .long 0
126 .byte 0,12,0x14,0,0,0,2,0
127 .long 0
92___ 128___
93 129
94$code =~ s/\`([^\`]*)\`/eval $1/gem; 130$code =~ s/\`([^\`]*)\`/eval $1/gem;