1.text 2 3.type _mul_1x1,@function 4.align 16 5_mul_1x1: 6 lgr %r6,%r3 7 sllg %r7,%r3,1 8 sllg %r8,%r3,2 9 sllg %r9,%r3,3 10 11 srag %r3,%r6,63 # broadcast 63rd bit 12 nihh %r6,0x1fff 13 srag %r12,%r7,63 # broadcast 62nd bit 14 nihh %r7,0x3fff 15 srag %r13,%r8,63 # broadcast 61st bit 16 nihh %r8,0x7fff 17 ngr %r3,%r5 18 ngr %r12,%r5 19 ngr %r13,%r5 20 21 lghi %r0,0 22 lgr %r10,%r6 23 stg %r0,160(%r15) # tab[0]=0 24 xgr %r10,%r7 25 stg %r6,168(%r15) # tab[1]=a1 26 lgr %r11,%r8 27 stg %r7,176(%r15) # tab[2]=a2 28 xgr %r11,%r9 29 stg %r10,184(%r15) # tab[3]=a1^a2 30 xgr %r6,%r8 31 32 stg %r8,192(%r15) # tab[4]=a4 33 xgr %r7,%r8 34 stg %r6,200(%r15) # tab[5]=a1^a4 35 xgr %r10,%r8 36 stg %r7,208(%r15) # tab[6]=a2^a4 37 xgr %r6,%r11 38 stg %r10,216(%r15) # tab[7]=a1^a2^a4 39 xgr %r7,%r11 40 41 stg %r9,224(%r15) # tab[8]=a8 42 xgr %r10,%r11 43 stg %r6,232(%r15) # tab[9]=a1^a8 44 xgr %r6,%r8 45 stg %r7,240(%r15) # tab[10]=a2^a8 46 xgr %r7,%r8 47 stg %r10,248(%r15) # tab[11]=a1^a2^a8 48 49 xgr %r10,%r8 50 stg %r11,256(%r15) # tab[12]=a4^a8 51 srlg %r4,%r3,1 52 stg %r6,264(%r15) # tab[13]=a1^a4^a8 53 sllg %r3,%r3,63 54 stg %r7,272(%r15) # tab[14]=a2^a4^a8 55 srlg %r0,%r12,2 56 stg %r10,280(%r15) # tab[15]=a1^a2^a4^a8 57 58 lghi %r9,120 59 sllg %r6,%r12,62 60 sllg %r12,%r5,3 61 srlg %r1,%r13,3 62 ngr %r12,%r9 63 sllg %r7,%r13,61 64 srlg %r13,%r5,4-3 65 xgr %r4,%r0 66 ngr %r13,%r9 67 xgr %r3,%r6 68 xgr %r4,%r1 69 xgr %r3,%r7 70 71 xg %r3,160(%r12,%r15) 72 srlg %r12,%r5,8-3 73 ngr %r12,%r9 74 lg %r1,160(%r13,%r15) 75 srlg %r13,%r5,12-3 76 sllg %r0,%r1,4 77 ngr %r13,%r9 78 srlg %r1,%r1,60 79 xgr %r3,%r0 80 xgr %r4,%r1 81 lg %r0,160(%r12,%r15) 82 srlg %r12,%r5,16-3 83 sllg %r1,%r0,8 84 ngr %r12,%r9 85 srlg %r0,%r0,56 86 xgr %r3,%r1 87 xgr %r4,%r0 88 lg %r1,160(%r13,%r15) 89 srlg %r13,%r5,20-3 90 sllg %r0,%r1,12 91 ngr %r13,%r9 92 srlg %r1,%r1,52 93 xgr %r3,%r0 94 xgr %r4,%r1 95 lg %r0,160(%r12,%r15) 96 srlg %r12,%r5,24-3 97 sllg %r1,%r0,16 98 ngr %r12,%r9 99 srlg %r0,%r0,48 100 xgr %r3,%r1 101 xgr %r4,%r0 102 lg %r1,160(%r13,%r15) 103 srlg %r13,%r5,28-3 104 sllg %r0,%r1,20 105 ngr %r13,%r9 106 srlg %r1,%r1,44 107 xgr %r3,%r0 108 xgr %r4,%r1 109 lg %r0,160(%r12,%r15) 110 srlg %r12,%r5,32-3 111 sllg %r1,%r0,24 112 ngr %r12,%r9 113 srlg %r0,%r0,40 114 xgr %r3,%r1 115 xgr %r4,%r0 116 lg %r1,160(%r13,%r15) 117 srlg %r13,%r5,36-3 118 sllg %r0,%r1,28 119 ngr %r13,%r9 120 srlg %r1,%r1,36 121 xgr %r3,%r0 122 xgr %r4,%r1 123 lg %r0,160(%r12,%r15) 124 srlg %r12,%r5,40-3 125 sllg %r1,%r0,32 126 ngr %r12,%r9 127 srlg %r0,%r0,32 128 xgr %r3,%r1 129 xgr %r4,%r0 130 lg %r1,160(%r13,%r15) 131 srlg %r13,%r5,44-3 132 sllg %r0,%r1,36 133 ngr %r13,%r9 134 srlg %r1,%r1,28 135 xgr %r3,%r0 136 xgr %r4,%r1 137 lg %r0,160(%r12,%r15) 138 srlg %r12,%r5,48-3 139 sllg %r1,%r0,40 140 ngr %r12,%r9 141 srlg %r0,%r0,24 142 xgr %r3,%r1 143 xgr %r4,%r0 144 lg %r1,160(%r13,%r15) 145 srlg %r13,%r5,52-3 146 sllg %r0,%r1,44 147 ngr %r13,%r9 148 srlg %r1,%r1,20 149 xgr %r3,%r0 150 xgr %r4,%r1 151 lg %r0,160(%r12,%r15) 152 srlg %r12,%r5,56-3 153 sllg %r1,%r0,48 154 ngr %r12,%r9 155 srlg %r0,%r0,16 156 xgr %r3,%r1 157 xgr %r4,%r0 158 lg %r1,160(%r13,%r15) 159 srlg %r13,%r5,60-3 160 sllg %r0,%r1,52 161 ngr %r13,%r9 162 srlg %r1,%r1,12 163 xgr %r3,%r0 164 xgr %r4,%r1 165 lg %r0,160(%r12,%r15) 166 sllg %r1,%r0,56 167 srlg %r0,%r0,8 168 xgr %r3,%r1 169 xgr %r4,%r0 170 171 lg %r1,160(%r13,%r15) 172 sllg %r0,%r1,60 173 srlg %r1,%r1,4 174 xgr %r3,%r0 175 xgr %r4,%r1 176 177 br %r14 178.size _mul_1x1,.-_mul_1x1 179 180.globl bn_GF2m_mul_2x2 181.type bn_GF2m_mul_2x2,@function 182.align 16 183bn_GF2m_mul_2x2: 184 stmg %r3,%r15,3*8(%r15) 185 186 lghi %r1,-160-128 187 la %r0,0(%r15) 188 la %r15,0(%r1,%r15) # alloca 189 stg %r0,0(%r15) # back chain 190 bras %r14,_mul_1x1 # a1·b1 191 stmg %r3,%r4,16(%r2) 192 193 lg %r3,320(%r15) 194 lg %r5,336(%r15) 195 bras %r14,_mul_1x1 # a0·b0 196 stmg %r3,%r4,0(%r2) 197 198 lg %r3,312(%r15) 199 lg %r5,328(%r15) 200 xg %r3,320(%r15) 201 xg %r5,336(%r15) 202 bras %r14,_mul_1x1 # (a0+a1)·(b0+b1) 203 lmg %r6,%r9,0(%r2) 204 205 xgr %r3,%r4 206 xgr %r4,%r7 207 xgr %r3,%r6 208 xgr %r4,%r8 209 xgr %r3,%r9 210 xgr %r4,%r9 211 xgr %r3,%r4 212 stg %r4,16(%r2) 213 stg %r3,8(%r2) 214 lmg %r6,%r15,336(%r15) 215 br %r14 216.size bn_GF2m_mul_2x2,.-bn_GF2m_mul_2x2 217.string "GF(2^m) Multiplication for s390x, CRYPTOGAMS by <appro@openssl.org>" 218