Upload Kmake

This commit is contained in:
Gorochu
2026-05-26 23:36:42 -07:00
parent ba051b2f74
commit 555ec72358
41615 changed files with 13344630 additions and 1 deletions

View File

@ -0,0 +1,201 @@
.text
.type _mul_1x1,@function
.align 16
_mul_1x1:
lgr %r6,%r3
sllg %r7,%r3,1
sllg %r8,%r3,2
sllg %r9,%r3,3
srag %r3,%r6,63 # broadcast 63rd bit
nihh %r6,0x1fff
srag %r12,%r7,63 # broadcast 62nd bit
nihh %r7,0x3fff
srag %r13,%r8,63 # broadcast 61st bit
nihh %r8,0x7fff
ngr %r3,%r5
ngr %r12,%r5
ngr %r13,%r5
lghi %r0,0
lgr %r10,%r6
stg %r0,96(%r15) # tab[0]=0
xgr %r10,%r7
stg %r6,104(%r15) # tab[1]=a1
lgr %r11,%r8
stg %r7,112(%r15) # tab[2]=a2
xgr %r11,%r9
stg %r10,120(%r15) # tab[3]=a1^a2
xgr %r6,%r8
stg %r8,128(%r15) # tab[4]=a4
xgr %r7,%r8
stg %r6,136(%r15) # tab[5]=a1^a4
xgr %r10,%r8
stg %r7,144(%r15) # tab[6]=a2^a4
xgr %r6,%r11
stg %r10,152(%r15) # tab[7]=a1^a2^a4
xgr %r7,%r11
stg %r9,160(%r15) # tab[8]=a8
xgr %r10,%r11
stg %r6,168(%r15) # tab[9]=a1^a8
xgr %r6,%r8
stg %r7,176(%r15) # tab[10]=a2^a8
xgr %r7,%r8
stg %r10,184(%r15) # tab[11]=a1^a2^a8
xgr %r10,%r8
stg %r11,192(%r15) # tab[12]=a4^a8
srlg %r4,%r3,1
stg %r6,200(%r15) # tab[13]=a1^a4^a8
sllg %r3,%r3,63
stg %r7,208(%r15) # tab[14]=a2^a4^a8
srlg %r0,%r12,2
stg %r10,216(%r15) # tab[15]=a1^a2^a4^a8
lghi %r9,120
sllg %r6,%r12,62
sllg %r12,%r5,3
srlg %r1,%r13,3
ngr %r12,%r9
sllg %r7,%r13,61
srlg %r13,%r5,4-3
xgr %r4,%r0
ngr %r13,%r9
xgr %r3,%r6
xgr %r4,%r1
xgr %r3,%r7
xg %r3,96(%r12,%r15)
srlg %r12,%r5,8-3
ngr %r12,%r9
lg %r1,96(%r13,%r15)
srlg %r13,%r5,12-3
sllg %r0,%r1,4
ngr %r13,%r9
srlg %r1,%r1,60
xgr %r3,%r0
xgr %r4,%r1
lg %r0,96(%r12,%r15)
srlg %r12,%r5,16-3
sllg %r1,%r0,8
ngr %r12,%r9
srlg %r0,%r0,56
xgr %r3,%r1
xgr %r4,%r0
lg %r1,96(%r13,%r15)
srlg %r13,%r5,20-3
sllg %r0,%r1,12
ngr %r13,%r9
srlg %r1,%r1,52
xgr %r3,%r0
xgr %r4,%r1
lg %r0,96(%r12,%r15)
srlg %r12,%r5,24-3
sllg %r1,%r0,16
ngr %r12,%r9
srlg %r0,%r0,48
xgr %r3,%r1
xgr %r4,%r0
lg %r1,96(%r13,%r15)
srlg %r13,%r5,28-3
sllg %r0,%r1,20
ngr %r13,%r9
srlg %r1,%r1,44
xgr %r3,%r0
xgr %r4,%r1
lg %r0,96(%r12,%r15)
srlg %r12,%r5,32-3
sllg %r1,%r0,24
ngr %r12,%r9
srlg %r0,%r0,40
xgr %r3,%r1
xgr %r4,%r0
lg %r1,96(%r13,%r15)
srlg %r13,%r5,36-3
sllg %r0,%r1,28
ngr %r13,%r9
srlg %r1,%r1,36
xgr %r3,%r0
xgr %r4,%r1
lg %r0,96(%r12,%r15)
srlg %r12,%r5,40-3
sllg %r1,%r0,32
ngr %r12,%r9
srlg %r0,%r0,32
xgr %r3,%r1
xgr %r4,%r0
lg %r1,96(%r13,%r15)
srlg %r13,%r5,44-3
sllg %r0,%r1,36
ngr %r13,%r9
srlg %r1,%r1,28
xgr %r3,%r0
xgr %r4,%r1
lg %r0,96(%r12,%r15)
srlg %r12,%r5,48-3
sllg %r1,%r0,40
ngr %r12,%r9
srlg %r0,%r0,24
xgr %r3,%r1
xgr %r4,%r0
lg %r1,96(%r13,%r15)
srlg %r13,%r5,52-3
sllg %r0,%r1,44
ngr %r13,%r9
srlg %r1,%r1,20
xgr %r3,%r0
xgr %r4,%r1
lg %r0,96(%r12,%r15)
srlg %r12,%r5,56-3
sllg %r1,%r0,48
ngr %r12,%r9
srlg %r0,%r0,16
xgr %r3,%r1
xgr %r4,%r0
lg %r1,96(%r13,%r15)
srlg %r13,%r5,60-3
sllg %r0,%r1,52
ngr %r13,%r9
srlg %r1,%r1,12
xgr %r3,%r0
xgr %r4,%r1
lg %r0,96(%r12,%r15)
sllg %r1,%r0,56
srlg %r0,%r0,8
xgr %r3,%r1
xgr %r4,%r0
lg %r1,96(%r13,%r15)
sllg %r0,%r1,60
srlg %r1,%r1,4
xgr %r3,%r0
xgr %r4,%r1
br %r14
.size _mul_1x1,.-_mul_1x1
.globl bn_GF2m_mul_2x2
.type bn_GF2m_mul_2x2,@function
.align 16
bn_GF2m_mul_2x2:
stm %r3,%r15,3*4(%r15)
lghi %r1,-96-128
la %r0,0(%r15)
la %r15,0(%r1,%r15) # alloca
st %r0,0(%r15) # back chain
sllg %r3,%r3,32
sllg %r5,%r5,32
or %r3,%r4
or %r5,%r6
bras %r14,_mul_1x1
rllg %r3,%r3,32
rllg %r4,%r4,32
stmg %r3,%r4,0(%r2)
lm %r6,%r15,248(%r15)
br %r14
.size bn_GF2m_mul_2x2,.-bn_GF2m_mul_2x2
.string "GF(2^m) Multiplication for s390x, CRYPTOGAMS by <appro@openssl.org>"

View File

@ -0,0 +1,176 @@
.text
.globl bn_mul_mont
.type bn_mul_mont,@function
bn_mul_mont:
lgf %r1,96(%r15) # pull %r1
sla %r1,2 # %r1 to enumerate bytes
la %r4,0(%r1,%r4)
st %r2,2*4(%r15)
cghi %r1,16 #
lghi %r2,0 #
blr %r14 # if(%r1<16) return 0;
tmll %r1,4
bnzr %r14 # if (%r1&1) return 0;
stm %r3,%r15,3*4(%r15)
lghi %r2,-96-8 # leave room for carry bit
lcgr %r7,%r1 # -%r1
lgr %r0,%r15
la %r2,0(%r2,%r15)
la %r15,0(%r7,%r2) # alloca
st %r0,0(%r15) # back chain
sra %r1,3 # restore %r1
la %r4,0(%r7,%r4) # restore %r4
ahi %r1,-1 # adjust %r1 for inner loop
lg %r6,0(%r6) # pull n0
rllg %r6,%r6,32
lg %r2,0(%r4)
rllg %r2,%r2,32
lg %r9,0(%r3)
rllg %r9,%r9,32
mlgr %r8,%r2 # ap[0]*bp[0]
lgr %r12,%r8
lgr %r0,%r9 # "tp[0]"*n0
msgr %r0,%r6
lg %r11,0(%r5) #
rllg %r11,%r11,32
mlgr %r10,%r0 # np[0]*m1
algr %r11,%r9 # +="tp[0]"
lghi %r13,0
alcgr %r13,%r10
la %r7,8 # j=1
lr %r14,%r1
.align 16
.L1st:
lg %r9,0(%r7,%r3)
rllg %r9,%r9,32
mlgr %r8,%r2 # ap[j]*bp[0]
algr %r9,%r12
lghi %r12,0
alcgr %r12,%r8
lg %r11,0(%r7,%r5)
rllg %r11,%r11,32
mlgr %r10,%r0 # np[j]*m1
algr %r11,%r13
lghi %r13,0
alcgr %r10,%r13 # +="tp[j]"
algr %r11,%r9
alcgr %r13,%r10
stg %r11,96-8(%r7,%r15) # tp[j-1]=
la %r7,8(%r7) # j++
brct %r14,.L1st
algr %r13,%r12
lghi %r12,0
alcgr %r12,%r12 # upmost overflow bit
stg %r13,96-8(%r7,%r15)
stg %r12,96(%r7,%r15)
la %r4,8(%r4) # bp++
.Louter:
lg %r2,0(%r4) # bp[i]
rllg %r2,%r2,32
lg %r9,0(%r3)
rllg %r9,%r9,32
mlgr %r8,%r2 # ap[0]*bp[i]
alg %r9,96(%r15) # +=tp[0]
lghi %r12,0
alcgr %r12,%r8
lgr %r0,%r9
msgr %r0,%r6 # tp[0]*n0
lg %r11,0(%r5) # np[0]
rllg %r11,%r11,32
mlgr %r10,%r0 # np[0]*m1
algr %r11,%r9 # +="tp[0]"
lghi %r13,0
alcgr %r13,%r10
la %r7,8 # j=1
lr %r14,%r1
.align 16
.Linner:
lg %r9,0(%r7,%r3)
rllg %r9,%r9,32
mlgr %r8,%r2 # ap[j]*bp[i]
algr %r9,%r12
lghi %r12,0
alcgr %r8,%r12
alg %r9,96(%r7,%r15)# +=tp[j]
alcgr %r12,%r8
lg %r11,0(%r7,%r5)
rllg %r11,%r11,32
mlgr %r10,%r0 # np[j]*m1
algr %r11,%r13
lghi %r13,0
alcgr %r10,%r13
algr %r11,%r9 # +="tp[j]"
alcgr %r13,%r10
stg %r11,96-8(%r7,%r15) # tp[j-1]=
la %r7,8(%r7) # j++
brct %r14,.Linner
algr %r13,%r12
lghi %r12,0
alcgr %r12,%r12
alg %r13,96(%r7,%r15)# accumulate previous upmost overflow bit
lghi %r8,0
alcgr %r12,%r8 # new upmost overflow bit
stg %r13,96-8(%r7,%r15)
stg %r12,96(%r7,%r15)
la %r4,8(%r4) # bp++
cl %r4,120(%r7,%r15) # compare to &bp[num]
jne .Louter
l %r2,112(%r7,%r15) # reincarnate rp
la %r3,96(%r15)
ahi %r1,1 # restore %r1, incidentally clears "borrow"
la %r7,0
lr %r14,%r1
.Lsub: lg %r9,0(%r7,%r3)
lg %r11,0(%r7,%r5)
rllg %r11,%r11,32
slbgr %r9,%r11
stg %r9,0(%r7,%r2)
la %r7,8(%r7)
brct %r14,.Lsub
lghi %r8,0
slbgr %r12,%r8 # handle upmost carry
lghi %r13,-1
xgr %r13,%r12
la %r7,0
lgr %r14,%r1
.Lcopy: lg %r8,96(%r7,%r15) # conditional copy
lg %r9,0(%r7,%r2)
ngr %r8,%r12
ngr %r9,%r13
ogr %r9,%r8
rllg %r9,%r9,32
stg %r7,96(%r7,%r15) # zap tp
stg %r9,0(%r7,%r2)
la %r7,8(%r7)
brct %r14,.Lcopy
la %r1,128(%r7,%r15)
lm %r6,%r15,0(%r1)
lghi %r2,1 # signal "processed"
br %r14
.size bn_mul_mont,.-bn_mul_mont
.string "Montgomery Multiplication for s390x, CRYPTOGAMS by <appro@openssl.org>"