1# This file is generated from a similarly-named Perl script in the BoringSSL 2# source tree. Do not edit by hand. 3 4#if defined(__i386__) 5#include "ring_core_generated/prefix_symbols_asm.h" 6.text 7.align 64 8.L_vpaes_consts: 9.long 218628480,235210255,168496130,67568393 10.long 252381056,17041926,33884169,51187212 11.long 252645135,252645135,252645135,252645135 12.long 1512730624,3266504856,1377990664,3401244816 13.long 830229760,1275146365,2969422977,3447763452 14.long 3411033600,2979783055,338359620,2782886510 15.long 4209124096,907596821,221174255,1006095553 16.long 191964160,3799684038,3164090317,1589111125 17.long 182528256,1777043520,2877432650,3265356744 18.long 1874708224,3503451415,3305285752,363511674 19.long 1606117888,3487855781,1093350906,2384367825 20.long 197121,67569157,134941193,202313229 21.long 67569157,134941193,202313229,197121 22.long 134941193,202313229,197121,67569157 23.long 202313229,197121,67569157,134941193 24.long 33619971,100992007,168364043,235736079 25.long 235736079,33619971,100992007,168364043 26.long 168364043,235736079,33619971,100992007 27.long 100992007,168364043,235736079,33619971 28.long 50462976,117835012,185207048,252579084 29.long 252314880,51251460,117574920,184942860 30.long 184682752,252054788,50987272,118359308 31.long 118099200,185467140,251790600,50727180 32.long 2946363062,528716217,1300004225,1881839624 33.long 1532713819,1532713819,1532713819,1532713819 34.long 3602276352,4288629033,3737020424,4153884961 35.long 1354558464,32357713,2958822624,3775749553 36.long 1201988352,132424512,1572796698,503232858 37.long 2213177600,1597421020,4103937655,675398315 38.byte 86,101,99,116,111,114,32,80,101,114,109,117,116,97,116,105 39.byte 111,110,32,65,69,83,32,102,111,114,32,120,56,54,47,83 40.byte 83,83,69,51,44,32,77,105,107,101,32,72,97,109,98,117 41.byte 114,103,32,40,83,116,97,110,102,111,114,100,32,85,110,105 42.byte 118,101,114,115,105,116,121,41,0 43.align 64 44.hidden _vpaes_preheat 45.type _vpaes_preheat,@function 46.align 16 47_vpaes_preheat: 48 addl (%esp),%ebp 49 movdqa -48(%ebp),%xmm7 50 movdqa -16(%ebp),%xmm6 51 ret 52.size _vpaes_preheat,.-_vpaes_preheat 53.hidden _vpaes_encrypt_core 54.type _vpaes_encrypt_core,@function 55.align 16 56_vpaes_encrypt_core: 57 movl $16,%ecx 58 movl 240(%edx),%eax 59 movdqa %xmm6,%xmm1 60 movdqa (%ebp),%xmm2 61 pandn %xmm0,%xmm1 62 pand %xmm6,%xmm0 63 movdqu (%edx),%xmm5 64.byte 102,15,56,0,208 65 movdqa 16(%ebp),%xmm0 66 pxor %xmm5,%xmm2 67 psrld $4,%xmm1 68 addl $16,%edx 69.byte 102,15,56,0,193 70 leal 192(%ebp),%ebx 71 pxor %xmm2,%xmm0 72 jmp .L000enc_entry 73.align 16 74.L001enc_loop: 75 movdqa 32(%ebp),%xmm4 76 movdqa 48(%ebp),%xmm0 77.byte 102,15,56,0,226 78.byte 102,15,56,0,195 79 pxor %xmm5,%xmm4 80 movdqa 64(%ebp),%xmm5 81 pxor %xmm4,%xmm0 82 movdqa -64(%ebx,%ecx,1),%xmm1 83.byte 102,15,56,0,234 84 movdqa 80(%ebp),%xmm2 85 movdqa (%ebx,%ecx,1),%xmm4 86.byte 102,15,56,0,211 87 movdqa %xmm0,%xmm3 88 pxor %xmm5,%xmm2 89.byte 102,15,56,0,193 90 addl $16,%edx 91 pxor %xmm2,%xmm0 92.byte 102,15,56,0,220 93 addl $16,%ecx 94 pxor %xmm0,%xmm3 95.byte 102,15,56,0,193 96 andl $48,%ecx 97 subl $1,%eax 98 pxor %xmm3,%xmm0 99.L000enc_entry: 100 movdqa %xmm6,%xmm1 101 movdqa -32(%ebp),%xmm5 102 pandn %xmm0,%xmm1 103 psrld $4,%xmm1 104 pand %xmm6,%xmm0 105.byte 102,15,56,0,232 106 movdqa %xmm7,%xmm3 107 pxor %xmm1,%xmm0 108.byte 102,15,56,0,217 109 movdqa %xmm7,%xmm4 110 pxor %xmm5,%xmm3 111.byte 102,15,56,0,224 112 movdqa %xmm7,%xmm2 113 pxor %xmm5,%xmm4 114.byte 102,15,56,0,211 115 movdqa %xmm7,%xmm3 116 pxor %xmm0,%xmm2 117.byte 102,15,56,0,220 118 movdqu (%edx),%xmm5 119 pxor %xmm1,%xmm3 120 jnz .L001enc_loop 121 movdqa 96(%ebp),%xmm4 122 movdqa 112(%ebp),%xmm0 123.byte 102,15,56,0,226 124 pxor %xmm5,%xmm4 125.byte 102,15,56,0,195 126 movdqa 64(%ebx,%ecx,1),%xmm1 127 pxor %xmm4,%xmm0 128.byte 102,15,56,0,193 129 ret 130.size _vpaes_encrypt_core,.-_vpaes_encrypt_core 131.hidden _vpaes_schedule_core 132.type _vpaes_schedule_core,@function 133.align 16 134_vpaes_schedule_core: 135 addl (%esp),%ebp 136 movdqu (%esi),%xmm0 137 movdqa 320(%ebp),%xmm2 138 movdqa %xmm0,%xmm3 139 leal (%ebp),%ebx 140 movdqa %xmm2,4(%esp) 141 call _vpaes_schedule_transform 142 movdqa %xmm0,%xmm7 143 testl %edi,%edi 144 jnz .L002schedule_am_decrypting 145 movdqu %xmm0,(%edx) 146 jmp .L003schedule_go 147.L002schedule_am_decrypting: 148 movdqa 256(%ebp,%ecx,1),%xmm1 149.byte 102,15,56,0,217 150 movdqu %xmm3,(%edx) 151 xorl $48,%ecx 152.L003schedule_go: 153 cmpl $192,%eax 154 ja .L004schedule_256 155.L005schedule_128: 156 movl $10,%eax 157.L006loop_schedule_128: 158 call _vpaes_schedule_round 159 decl %eax 160 jz .L007schedule_mangle_last 161 call _vpaes_schedule_mangle 162 jmp .L006loop_schedule_128 163.align 16 164.L004schedule_256: 165 movdqu 16(%esi),%xmm0 166 call _vpaes_schedule_transform 167 movl $7,%eax 168.L008loop_schedule_256: 169 call _vpaes_schedule_mangle 170 movdqa %xmm0,%xmm6 171 call _vpaes_schedule_round 172 decl %eax 173 jz .L007schedule_mangle_last 174 call _vpaes_schedule_mangle 175 pshufd $255,%xmm0,%xmm0 176 movdqa %xmm7,20(%esp) 177 movdqa %xmm6,%xmm7 178 call .L_vpaes_schedule_low_round 179 movdqa 20(%esp),%xmm7 180 jmp .L008loop_schedule_256 181.align 16 182.L007schedule_mangle_last: 183 leal 384(%ebp),%ebx 184 testl %edi,%edi 185 jnz .L009schedule_mangle_last_dec 186 movdqa 256(%ebp,%ecx,1),%xmm1 187.byte 102,15,56,0,193 188 leal 352(%ebp),%ebx 189 addl $32,%edx 190.L009schedule_mangle_last_dec: 191 addl $-16,%edx 192 pxor 336(%ebp),%xmm0 193 call _vpaes_schedule_transform 194 movdqu %xmm0,(%edx) 195 pxor %xmm0,%xmm0 196 pxor %xmm1,%xmm1 197 pxor %xmm2,%xmm2 198 pxor %xmm3,%xmm3 199 pxor %xmm4,%xmm4 200 pxor %xmm5,%xmm5 201 pxor %xmm6,%xmm6 202 pxor %xmm7,%xmm7 203 ret 204.size _vpaes_schedule_core,.-_vpaes_schedule_core 205.hidden _vpaes_schedule_round 206.type _vpaes_schedule_round,@function 207.align 16 208_vpaes_schedule_round: 209 movdqa 8(%esp),%xmm2 210 pxor %xmm1,%xmm1 211.byte 102,15,58,15,202,15 212.byte 102,15,58,15,210,15 213 pxor %xmm1,%xmm7 214 pshufd $255,%xmm0,%xmm0 215.byte 102,15,58,15,192,1 216 movdqa %xmm2,8(%esp) 217.L_vpaes_schedule_low_round: 218 movdqa %xmm7,%xmm1 219 pslldq $4,%xmm7 220 pxor %xmm1,%xmm7 221 movdqa %xmm7,%xmm1 222 pslldq $8,%xmm7 223 pxor %xmm1,%xmm7 224 pxor 336(%ebp),%xmm7 225 movdqa -16(%ebp),%xmm4 226 movdqa -48(%ebp),%xmm5 227 movdqa %xmm4,%xmm1 228 pandn %xmm0,%xmm1 229 psrld $4,%xmm1 230 pand %xmm4,%xmm0 231 movdqa -32(%ebp),%xmm2 232.byte 102,15,56,0,208 233 pxor %xmm1,%xmm0 234 movdqa %xmm5,%xmm3 235.byte 102,15,56,0,217 236 pxor %xmm2,%xmm3 237 movdqa %xmm5,%xmm4 238.byte 102,15,56,0,224 239 pxor %xmm2,%xmm4 240 movdqa %xmm5,%xmm2 241.byte 102,15,56,0,211 242 pxor %xmm0,%xmm2 243 movdqa %xmm5,%xmm3 244.byte 102,15,56,0,220 245 pxor %xmm1,%xmm3 246 movdqa 32(%ebp),%xmm4 247.byte 102,15,56,0,226 248 movdqa 48(%ebp),%xmm0 249.byte 102,15,56,0,195 250 pxor %xmm4,%xmm0 251 pxor %xmm7,%xmm0 252 movdqa %xmm0,%xmm7 253 ret 254.size _vpaes_schedule_round,.-_vpaes_schedule_round 255.hidden _vpaes_schedule_transform 256.type _vpaes_schedule_transform,@function 257.align 16 258_vpaes_schedule_transform: 259 movdqa -16(%ebp),%xmm2 260 movdqa %xmm2,%xmm1 261 pandn %xmm0,%xmm1 262 psrld $4,%xmm1 263 pand %xmm2,%xmm0 264 movdqa (%ebx),%xmm2 265.byte 102,15,56,0,208 266 movdqa 16(%ebx),%xmm0 267.byte 102,15,56,0,193 268 pxor %xmm2,%xmm0 269 ret 270.size _vpaes_schedule_transform,.-_vpaes_schedule_transform 271.hidden _vpaes_schedule_mangle 272.type _vpaes_schedule_mangle,@function 273.align 16 274_vpaes_schedule_mangle: 275 movdqa %xmm0,%xmm4 276 movdqa 128(%ebp),%xmm5 277 testl %edi,%edi 278 jnz .L010schedule_mangle_dec 279 addl $16,%edx 280 pxor 336(%ebp),%xmm4 281.byte 102,15,56,0,229 282 movdqa %xmm4,%xmm3 283.byte 102,15,56,0,229 284 pxor %xmm4,%xmm3 285.byte 102,15,56,0,229 286 pxor %xmm4,%xmm3 287 jmp .L011schedule_mangle_both 288.align 16 289.L010schedule_mangle_dec: 290 movdqa -16(%ebp),%xmm2 291 leal (%ebp),%esi 292 movdqa %xmm2,%xmm1 293 pandn %xmm4,%xmm1 294 psrld $4,%xmm1 295 pand %xmm2,%xmm4 296 movdqa (%esi),%xmm2 297.byte 102,15,56,0,212 298 movdqa 16(%esi),%xmm3 299.byte 102,15,56,0,217 300 pxor %xmm2,%xmm3 301.byte 102,15,56,0,221 302 movdqa 32(%esi),%xmm2 303.byte 102,15,56,0,212 304 pxor %xmm3,%xmm2 305 movdqa 48(%esi),%xmm3 306.byte 102,15,56,0,217 307 pxor %xmm2,%xmm3 308.byte 102,15,56,0,221 309 movdqa 64(%esi),%xmm2 310.byte 102,15,56,0,212 311 pxor %xmm3,%xmm2 312 movdqa 80(%esi),%xmm3 313.byte 102,15,56,0,217 314 pxor %xmm2,%xmm3 315.byte 102,15,56,0,221 316 movdqa 96(%esi),%xmm2 317.byte 102,15,56,0,212 318 pxor %xmm3,%xmm2 319 movdqa 112(%esi),%xmm3 320.byte 102,15,56,0,217 321 pxor %xmm2,%xmm3 322 addl $-16,%edx 323.L011schedule_mangle_both: 324 movdqa 256(%ebp,%ecx,1),%xmm1 325.byte 102,15,56,0,217 326 addl $-16,%ecx 327 andl $48,%ecx 328 movdqu %xmm3,(%edx) 329 ret 330.size _vpaes_schedule_mangle,.-_vpaes_schedule_mangle 331.globl vpaes_set_encrypt_key 332.hidden vpaes_set_encrypt_key 333.type vpaes_set_encrypt_key,@function 334.align 16 335vpaes_set_encrypt_key: 336.L_vpaes_set_encrypt_key_begin: 337 pushl %ebp 338 pushl %ebx 339 pushl %esi 340 pushl %edi 341 movl 20(%esp),%esi 342 leal -56(%esp),%ebx 343 movl 24(%esp),%eax 344 andl $-16,%ebx 345 movl 28(%esp),%edx 346 xchgl %esp,%ebx 347 movl %ebx,48(%esp) 348 movl %eax,%ebx 349 shrl $5,%ebx 350 addl $5,%ebx 351 movl %ebx,240(%edx) 352 movl $48,%ecx 353 movl $0,%edi 354 leal .L_vpaes_consts+0x30-.L012pic_point,%ebp 355 call _vpaes_schedule_core 356.L012pic_point: 357 movl 48(%esp),%esp 358 xorl %eax,%eax 359 popl %edi 360 popl %esi 361 popl %ebx 362 popl %ebp 363 ret 364.size vpaes_set_encrypt_key,.-.L_vpaes_set_encrypt_key_begin 365.globl vpaes_encrypt 366.hidden vpaes_encrypt 367.type vpaes_encrypt,@function 368.align 16 369vpaes_encrypt: 370.L_vpaes_encrypt_begin: 371 pushl %ebp 372 pushl %ebx 373 pushl %esi 374 pushl %edi 375 leal .L_vpaes_consts+0x30-.L013pic_point,%ebp 376 call _vpaes_preheat 377.L013pic_point: 378 movl 20(%esp),%esi 379 leal -56(%esp),%ebx 380 movl 24(%esp),%edi 381 andl $-16,%ebx 382 movl 28(%esp),%edx 383 xchgl %esp,%ebx 384 movl %ebx,48(%esp) 385 movdqu (%esi),%xmm0 386 call _vpaes_encrypt_core 387 movdqu %xmm0,(%edi) 388 movl 48(%esp),%esp 389 popl %edi 390 popl %esi 391 popl %ebx 392 popl %ebp 393 ret 394.size vpaes_encrypt,.-.L_vpaes_encrypt_begin 395#endif 396.section .note.GNU-stack,"",@progbits 397