NetBSD-5.0.2/lib/libcrypto/arch/powerpc/ppccpuid.S
.text
.globl OPENSSL_cpuid_setup
.type OPENSSL_cpuid_setup,@function
.align 4
OPENSSL_cpuid_setup:
blr
.globl OPENSSL_wipe_cpu
.type OPENSSL_wipe_cpu,@function
.align 4
OPENSSL_wipe_cpu:
xor 0,0,0
mr 3,1
xor 4,4,4
xor 5,5,5
xor 6,6,6
xor 7,7,7
xor 8,8,8
xor 9,9,9
xor 10,10,10
xor 11,11,11
xor 12,12,12
blr
.globl OPENSSL_atomic_add
.type OPENSSL_atomic_add,@function
.align 4
OPENSSL_atomic_add:
.Loop: lwarx 5,0,3
add 0,4,5
stwcx. 0,0,3
bne- .Loop
mr 3,0
blr
.globl OPENSSL_rdtsc
.type OPENSSL_rdtsc,@function
.align 4
OPENSSL_rdtsc:
mftb 3
mftbu 4
blr
.globl OPENSSL_cleanse
.type OPENSSL_cleanse,@function
.align 4
OPENSSL_cleanse:
cmplwi 4,7
li 0,0
bge .Lot
.Little: mtctr 4
stb 0,0(3)
addi 3,3,1
bdnz+ $-8
blr
.Lot: andi. 5,3,3
beq .Laligned
stb 0,0(3)
subi 4,4,1
addi 3,3,1
b .Lot
.Laligned:
srwi 5,4,2
mtctr 5
stw 0,0(3)
addi 3,3,4
bdnz+ $-8
andi. 4,4,3
bne .Little
blr