Add ppc bits; untested

This commit is contained in:
christos 2008-05-13 15:35:40 +00:00
parent d4fd069bec
commit e3ec2bf190
8 changed files with 5935 additions and 0 deletions

View File

@ -0,0 +1,16 @@
# $NetBSD: Makefile,v 1.1 2008/05/13 15:35:40 christos Exp $
.include "bsd.own.mk"
CRYPTODIST=${NETBSDSRCDIR}/crypto/dist
.include "${NETBSDSRCDIR}/crypto/Makefile.openssl"
XLATE=${OPENSSLSRC}/crypto/perlasm/ppc-xlate.pl
regen:
for i in $$(find ${OPENSSLSRC} -name \*ppc\*.pl); do \
case $$i in \
*xlate.pl) ;; \
*64*) ;; \
*) perl $$i 32 | perl ${XLATE} linux32 > $$(basename $$i .pl).S ;; \
esac; \
done

File diff suppressed because it is too large Load Diff

View File

@ -0,0 +1,3 @@
.PATH.S: ${.PARSEDIR}
BN_SRCS = ppc.S
.include "../../bn.inc"

View File

@ -0,0 +1,213 @@
.machine "any"
.text
.globl bn_mul_mont
.type bn_mul_mont,@function
.align 4
bn_mul_mont:
cmpwi 8,4
mr 9,3
li 3,0
bclr 12,0
slwi 8,8,2
li 12,-4096
addi 3,8,288
subf 3,3,1
and 3,3,12
subf 3,1,3
srwi 8,8,2
stwux 1,1,3
stw 14,16(1)
stw 15,20(1)
stw 16,24(1)
stw 17,28(1)
stw 18,32(1)
stw 19,36(1)
stw 20,40(1)
stw 21,44(1)
stw 22,48(1)
stw 23,52(1)
stw 24,56(1)
stw 25,60(1)
lwz 7,0(7)
addi 8,8,-2
lwz 17,0(5)
lwz 10,0(4)
addi 16,1,64
mullw 19,10,17
mulhwu 20,10,17
lwz 10,4(4)
lwz 11,0(6)
mullw 18,19,7
mullw 23,10,17
mulhwu 24,10,17
mullw 21,11,18
mulhwu 22,11,18
lwz 11,4(6)
addc 21,21,19
addze 22,22
mullw 25,11,18
mulhwu 0,11,18
mtctr 8
li 15,8
.align 4
.L1st:
lwzx 10,4,15
addc 19,23,20
lwzx 11,6,15
addze 20,24
mullw 23,10,17
addc 21,25,22
mulhwu 24,10,17
addze 22,0
mullw 25,11,18
addc 21,21,19
mulhwu 0,11,18
addze 22,22
stw 21,0(16)
addi 15,15,4
addi 16,16,4
bc 25,0,.L1st
addc 19,23,20
addze 20,24
addc 21,25,22
addze 22,0
addc 21,21,19
addze 22,22
stw 21,0(16)
li 3,0
addc 22,22,20
addze 3,3
stw 22,4(16)
li 14,4
.align 4
.Louter:
lwzx 17,5,14
lwz 10,0(4)
addi 16,1,64
lwz 12,64(1)
mullw 19,10,17
mulhwu 20,10,17
lwz 10,4(4)
lwz 11,0(6)
addc 19,19,12
mullw 23,10,17
addze 20,20
mullw 18,19,7
mulhwu 24,10,17
mullw 21,11,18
mulhwu 22,11,18
lwz 11,4(6)
addc 21,21,19
mullw 25,11,18
addze 22,22
mulhwu 0,11,18
mtctr 8
li 15,8
.align 4
.Linner:
lwzx 10,4,15
addc 19,23,20
lwz 12,4(16)
addze 20,24
lwzx 11,6,15
addc 21,25,22
mullw 23,10,17
addze 22,0
mulhwu 24,10,17
addc 19,19,12
mullw 25,11,18
addze 20,20
mulhwu 0,11,18
addc 21,21,19
addi 15,15,4
addze 22,22
stw 21,0(16)
addi 16,16,4
bc 25,0,.Linner
lwz 12,4(16)
addc 19,23,20
addze 20,24
addc 19,19,12
addze 20,20
addc 21,25,22
addze 22,0
addc 21,21,19
addze 22,22
stw 21,0(16)
addic 3,3,-1
li 3,0
adde 22,22,20
addze 3,3
stw 22,4(16)
slwi 12,8,2
.long 0x7c0e6040
addi 14,14,4
ble- .Louter
addi 8,8,2
subfc 15,15,15
addi 16,1,64
mtctr 8
.align 4
.Lsub: lwzx 12,16,15
lwzx 11,6,15
subfe 10,11,12
stwx 10,9,15
addi 15,15,4
bc 25,0,.Lsub
li 15,0
mtctr 8
subfe 3,15,3
and 4,16,3
andc 6,9,3
or 4,4,6
.align 4
.Lcopy:
lwzx 12,4,15
stwx 12,9,15
stwx 15,16,15
addi 15,15,4
bc 25,0,.Lcopy
lwz 14,16(1)
lwz 15,20(1)
lwz 16,24(1)
lwz 17,28(1)
lwz 18,32(1)
lwz 19,36(1)
lwz 20,40(1)
lwz 21,44(1)
lwz 22,48(1)
lwz 23,52(1)
lwz 24,56(1)
lwz 25,60(1)
lwz 1,0(1)
li 3,1
blr
.long 0
.byte 77,111,110,116,103,111,109,101,114,121,32,77,117,108,116,105,112,108,105,99,97,116,105,111,110,32,102,111,114,32,80,80,67,44,32,67,82,89,80,84,79,71,65,77,83,32,98,121,32,60,97,112,112,114,111,64,102,121,46,99,104,97,108,109,101,114,115,46,115,101,62,0
.align 2

File diff suppressed because it is too large Load Diff

View File

@ -0,0 +1,71 @@
.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
bc 25,0,$-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
bc 25,0,$-8
andi. 4,4,3
bne .Little
blr

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff