1.machine "any" 2.text 3.globl poly1305_init_int 4.type poly1305_init_int,@function 5.align 4 6poly1305_init_int: 7 xor 0,0,0 8 stw 0,0(3) 9 stw 0,4(3) 10 stw 0,8(3) 11 stw 0,12(3) 12 stw 0,16(3) 13 14 .long 0x7c040040 15 beq- .Lno_key 16 li 8,4 17 lwbrx 7,0,4 18 li 9,8 19 lwbrx 8,8,4 20 li 10,12 21 lwbrx 9,9,4 22 lwbrx 10,10,4 23 lis 0,0xf000 24 li 12,-4 25 andc 12,12,0 26 27 andc 7,7,0 28 and 8,8,12 29 and 9,9,12 30 and 10,10,12 31 32 stw 7,32(3) 33 stw 8,36(3) 34 stw 9,40(3) 35 stw 10,44(3) 36 37.Lno_key: 38 xor 3,3,3 39 blr 40.long 0 41.byte 0,12,0x14,0,0,0,2,0 42.size poly1305_init_int,.-poly1305_init_int 43 44.globl poly1305_blocks 45.type poly1305_blocks,@function 46.align 4 47poly1305_blocks: 48 srwi. 5,5,4 49 beq- .Labort 50 51 stwu 1,-96(1) 52 mflr 0 53 stw 14,24(1) 54 stw 15,28(1) 55 stw 16,32(1) 56 stw 17,36(1) 57 stw 18,40(1) 58 stw 19,44(1) 59 stw 20,48(1) 60 stw 21,52(1) 61 stw 22,56(1) 62 stw 23,60(1) 63 stw 24,64(1) 64 stw 25,68(1) 65 stw 26,72(1) 66 stw 27,76(1) 67 stw 28,80(1) 68 stw 29,84(1) 69 stw 30,88(1) 70 stw 31,92(1) 71 stw 0,100(1) 72 73 lwz 12,32(3) 74 lwz 14,36(3) 75 lwz 15,40(3) 76 lwz 16,44(3) 77 78 lwz 7,0(3) 79 lwz 8,4(3) 80 lwz 9,8(3) 81 lwz 10,12(3) 82 lwz 11,16(3) 83 84 srwi 17,14,2 85 srwi 18,15,2 86 srwi 19,16,2 87 add 17,17,14 88 add 18,18,15 89 add 19,19,16 90 mtctr 5 91 li 0,3 92 b .Loop 93 94.align 4 95.Loop: 96 li 29,4 97 lwbrx 28,0,4 98 li 30,8 99 lwbrx 29,29,4 100 li 31,12 101 lwbrx 30,30,4 102 lwbrx 31,31,4 103 addi 4,4,16 104 105 addc 7,7,28 106 adde 8,8,29 107 adde 9,9,30 108 109 mullw 28,7,12 110 mulhwu 24,7,12 111 112 mullw 29,7,14 113 mulhwu 25,7,14 114 115 mullw 30,7,15 116 mulhwu 26,7,15 117 118 adde 10,10,31 119 adde 11,11,6 120 121 mullw 31,7,16 122 mulhwu 27,7,16 123 124 mullw 20,8,19 125 mulhwu 21,8,19 126 127 mullw 22,8,12 128 mulhwu 23,8,12 129 addc 28,28,20 130 adde 24,24,21 131 132 mullw 20,8,14 133 mulhwu 21,8,14 134 addc 29,29,22 135 adde 25,25,23 136 137 mullw 22,8,15 138 mulhwu 23,8,15 139 addc 30,30,20 140 adde 26,26,21 141 142 mullw 20,9,18 143 mulhwu 21,9,18 144 addc 31,31,22 145 adde 27,27,23 146 147 mullw 22,9,19 148 mulhwu 23,9,19 149 addc 28,28,20 150 adde 24,24,21 151 152 mullw 20,9,12 153 mulhwu 21,9,12 154 addc 29,29,22 155 adde 25,25,23 156 157 mullw 22,9,14 158 mulhwu 23,9,14 159 addc 30,30,20 160 adde 26,26,21 161 162 mullw 20,10,17 163 mulhwu 21,10,17 164 addc 31,31,22 165 adde 27,27,23 166 167 mullw 22,10,18 168 mulhwu 23,10,18 169 addc 28,28,20 170 adde 24,24,21 171 172 mullw 20,10,19 173 mulhwu 21,10,19 174 addc 29,29,22 175 adde 25,25,23 176 177 mullw 22,10,12 178 mulhwu 23,10,12 179 addc 30,30,20 180 adde 26,26,21 181 182 mullw 20,11,17 183 addc 31,31,22 184 adde 27,27,23 185 addc 29,29,20 186 187 mullw 21,11,18 188 addze 25,25 189 addc 30,30,21 190 addze 26,26 191 192 mullw 22,11,19 193 addc 31,31,22 194 addze 27,27 195 196 mullw 11,11,12 197 198 addc 8,29,24 199 adde 9,30,25 200 adde 10,31,26 201 adde 11,11,27 202 203 andc 24,11,0 204 and 11,11,0 205 srwi 25,24,2 206 add 24,24,25 207 addc 7,28,24 208 addze 8,8 209 addze 9,9 210 addze 10,10 211 addze 11,11 212 213 bdnz .Loop 214 215 stw 7,0(3) 216 stw 8,4(3) 217 stw 9,8(3) 218 stw 10,12(3) 219 stw 11,16(3) 220 221 lwz 14,24(1) 222 lwz 15,28(1) 223 lwz 16,32(1) 224 lwz 17,36(1) 225 lwz 18,40(1) 226 lwz 19,44(1) 227 lwz 20,48(1) 228 lwz 21,52(1) 229 lwz 22,56(1) 230 lwz 23,60(1) 231 lwz 24,64(1) 232 lwz 25,68(1) 233 lwz 26,72(1) 234 lwz 27,76(1) 235 lwz 28,80(1) 236 lwz 29,84(1) 237 lwz 30,88(1) 238 lwz 31,92(1) 239 addi 1,1,96 240.Labort: 241 blr 242.long 0 243.byte 0,12,4,1,0x80,18,4,0 244.size poly1305_blocks,.-poly1305_blocks 245 246.globl poly1305_emit 247.type poly1305_emit,@function 248.align 4 249poly1305_emit: 250 stwu 1,-96(1) 251 mflr 0 252 stw 28,80(1) 253 stw 29,84(1) 254 stw 30,88(1) 255 stw 31,92(1) 256 stw 0,100(1) 257 258 lwz 7,0(3) 259 lwz 8,4(3) 260 lwz 9,8(3) 261 lwz 10,12(3) 262 lwz 11,16(3) 263 264 addic 28,7,5 265 addze 29,8 266 addze 30,9 267 addze 31,10 268 addze 0,11 269 270 srwi 0,0,2 271 neg 0,0 272 273 andc 7,7,0 274 and 28,28,0 275 andc 8,8,0 276 and 29,29,0 277 or 7,7,28 278 lwz 28,0(5) 279 andc 9,9,0 280 and 30,30,0 281 or 8,8,29 282 lwz 29,4(5) 283 andc 10,10,0 284 and 31,31,0 285 or 9,9,30 286 lwz 30,8(5) 287 or 10,10,31 288 lwz 31,12(5) 289 290 addc 7,7,28 291 adde 8,8,29 292 adde 9,9,30 293 adde 10,10,31 294 li 29,4 295 stwbrx 7,0,4 296 li 30,8 297 stwbrx 8,29,4 298 li 31,12 299 stwbrx 9,30,4 300 stwbrx 10,31,4 301 lwz 28,80(1) 302 lwz 29,84(1) 303 lwz 30,88(1) 304 lwz 31,92(1) 305 addi 1,1,96 306 blr 307.long 0 308.byte 0,12,4,1,0x80,4,3,0 309.size poly1305_emit,.-poly1305_emit 310.byte 80,111,108,121,49,51,48,53,32,102,111,114,32,80,80,67,44,67,82,89,80,84,79,71,65,77,83,32,98,121,32,60,97,112,112,114,111,64,111,112,101,110,115,115,108,46,111,114,103,62,0 311.align 2 312