1// This file is generated from a similarly-named Perl script in the BoringSSL 2// source tree. Do not edit by hand. 3 4#include <openssl/asm_base.h> 5 6#if !defined(OPENSSL_NO_ASM) && defined(OPENSSL_X86) && defined(__APPLE__) 7.text 8.globl _gcm_init_clmul 9.private_extern _gcm_init_clmul 10.align 4 11_gcm_init_clmul: 12L_gcm_init_clmul_begin: 13 movl 4(%esp),%edx 14 movl 8(%esp),%eax 15 call L000pic 16L000pic: 17 popl %ecx 18 leal Lbswap-L000pic(%ecx),%ecx 19 movdqu (%eax),%xmm2 20 pshufd $78,%xmm2,%xmm2 21 pshufd $255,%xmm2,%xmm4 22 movdqa %xmm2,%xmm3 23 psllq $1,%xmm2 24 pxor %xmm5,%xmm5 25 psrlq $63,%xmm3 26 pcmpgtd %xmm4,%xmm5 27 pslldq $8,%xmm3 28 por %xmm3,%xmm2 29 pand 16(%ecx),%xmm5 30 pxor %xmm5,%xmm2 31 movdqa %xmm2,%xmm0 32 movdqa %xmm0,%xmm1 33 pshufd $78,%xmm0,%xmm3 34 pshufd $78,%xmm2,%xmm4 35 pxor %xmm0,%xmm3 36 pxor %xmm2,%xmm4 37.byte 102,15,58,68,194,0 38.byte 102,15,58,68,202,17 39.byte 102,15,58,68,220,0 40 xorps %xmm0,%xmm3 41 xorps %xmm1,%xmm3 42 movdqa %xmm3,%xmm4 43 psrldq $8,%xmm3 44 pslldq $8,%xmm4 45 pxor %xmm3,%xmm1 46 pxor %xmm4,%xmm0 47 movdqa %xmm0,%xmm4 48 movdqa %xmm0,%xmm3 49 psllq $5,%xmm0 50 pxor %xmm0,%xmm3 51 psllq $1,%xmm0 52 pxor %xmm3,%xmm0 53 psllq $57,%xmm0 54 movdqa %xmm0,%xmm3 55 pslldq $8,%xmm0 56 psrldq $8,%xmm3 57 pxor %xmm4,%xmm0 58 pxor %xmm3,%xmm1 59 movdqa %xmm0,%xmm4 60 psrlq $1,%xmm0 61 pxor %xmm4,%xmm1 62 pxor %xmm0,%xmm4 63 psrlq $5,%xmm0 64 pxor %xmm4,%xmm0 65 psrlq $1,%xmm0 66 pxor %xmm1,%xmm0 67 pshufd $78,%xmm2,%xmm3 68 pshufd $78,%xmm0,%xmm4 69 pxor %xmm2,%xmm3 70 movdqu %xmm2,(%edx) 71 pxor %xmm0,%xmm4 72 movdqu %xmm0,16(%edx) 73.byte 102,15,58,15,227,8 74 movdqu %xmm4,32(%edx) 75 ret 76.globl _gcm_gmult_clmul 77.private_extern _gcm_gmult_clmul 78.align 4 79_gcm_gmult_clmul: 80L_gcm_gmult_clmul_begin: 81 movl 4(%esp),%eax 82 movl 8(%esp),%edx 83 call L001pic 84L001pic: 85 popl %ecx 86 leal Lbswap-L001pic(%ecx),%ecx 87 movdqu (%eax),%xmm0 88 movdqa (%ecx),%xmm5 89 movups (%edx),%xmm2 90.byte 102,15,56,0,197 91 movups 32(%edx),%xmm4 92 movdqa %xmm0,%xmm1 93 pshufd $78,%xmm0,%xmm3 94 pxor %xmm0,%xmm3 95.byte 102,15,58,68,194,0 96.byte 102,15,58,68,202,17 97.byte 102,15,58,68,220,0 98 xorps %xmm0,%xmm3 99 xorps %xmm1,%xmm3 100 movdqa %xmm3,%xmm4 101 psrldq $8,%xmm3 102 pslldq $8,%xmm4 103 pxor %xmm3,%xmm1 104 pxor %xmm4,%xmm0 105 movdqa %xmm0,%xmm4 106 movdqa %xmm0,%xmm3 107 psllq $5,%xmm0 108 pxor %xmm0,%xmm3 109 psllq $1,%xmm0 110 pxor %xmm3,%xmm0 111 psllq $57,%xmm0 112 movdqa %xmm0,%xmm3 113 pslldq $8,%xmm0 114 psrldq $8,%xmm3 115 pxor %xmm4,%xmm0 116 pxor %xmm3,%xmm1 117 movdqa %xmm0,%xmm4 118 psrlq $1,%xmm0 119 pxor %xmm4,%xmm1 120 pxor %xmm0,%xmm4 121 psrlq $5,%xmm0 122 pxor %xmm4,%xmm0 123 psrlq $1,%xmm0 124 pxor %xmm1,%xmm0 125.byte 102,15,56,0,197 126 movdqu %xmm0,(%eax) 127 ret 128.globl _gcm_ghash_clmul 129.private_extern _gcm_ghash_clmul 130.align 4 131_gcm_ghash_clmul: 132L_gcm_ghash_clmul_begin: 133 pushl %ebp 134 pushl %ebx 135 pushl %esi 136 pushl %edi 137 movl 20(%esp),%eax 138 movl 24(%esp),%edx 139 movl 28(%esp),%esi 140 movl 32(%esp),%ebx 141 call L002pic 142L002pic: 143 popl %ecx 144 leal Lbswap-L002pic(%ecx),%ecx 145 movdqu (%eax),%xmm0 146 movdqa (%ecx),%xmm5 147 movdqu (%edx),%xmm2 148.byte 102,15,56,0,197 149 subl $16,%ebx 150 jz L003odd_tail 151 movdqu (%esi),%xmm3 152 movdqu 16(%esi),%xmm6 153.byte 102,15,56,0,221 154.byte 102,15,56,0,245 155 movdqu 32(%edx),%xmm5 156 pxor %xmm3,%xmm0 157 pshufd $78,%xmm6,%xmm3 158 movdqa %xmm6,%xmm7 159 pxor %xmm6,%xmm3 160 leal 32(%esi),%esi 161.byte 102,15,58,68,242,0 162.byte 102,15,58,68,250,17 163.byte 102,15,58,68,221,0 164 movups 16(%edx),%xmm2 165 nop 166 subl $32,%ebx 167 jbe L004even_tail 168 jmp L005mod_loop 169.align 5,0x90 170L005mod_loop: 171 pshufd $78,%xmm0,%xmm4 172 movdqa %xmm0,%xmm1 173 pxor %xmm0,%xmm4 174 nop 175.byte 102,15,58,68,194,0 176.byte 102,15,58,68,202,17 177.byte 102,15,58,68,229,16 178 movups (%edx),%xmm2 179 xorps %xmm6,%xmm0 180 movdqa (%ecx),%xmm5 181 xorps %xmm7,%xmm1 182 movdqu (%esi),%xmm7 183 pxor %xmm0,%xmm3 184 movdqu 16(%esi),%xmm6 185 pxor %xmm1,%xmm3 186.byte 102,15,56,0,253 187 pxor %xmm3,%xmm4 188 movdqa %xmm4,%xmm3 189 psrldq $8,%xmm4 190 pslldq $8,%xmm3 191 pxor %xmm4,%xmm1 192 pxor %xmm3,%xmm0 193.byte 102,15,56,0,245 194 pxor %xmm7,%xmm1 195 movdqa %xmm6,%xmm7 196 movdqa %xmm0,%xmm4 197 movdqa %xmm0,%xmm3 198 psllq $5,%xmm0 199 pxor %xmm0,%xmm3 200 psllq $1,%xmm0 201 pxor %xmm3,%xmm0 202.byte 102,15,58,68,242,0 203 movups 32(%edx),%xmm5 204 psllq $57,%xmm0 205 movdqa %xmm0,%xmm3 206 pslldq $8,%xmm0 207 psrldq $8,%xmm3 208 pxor %xmm4,%xmm0 209 pxor %xmm3,%xmm1 210 pshufd $78,%xmm7,%xmm3 211 movdqa %xmm0,%xmm4 212 psrlq $1,%xmm0 213 pxor %xmm7,%xmm3 214 pxor %xmm4,%xmm1 215.byte 102,15,58,68,250,17 216 movups 16(%edx),%xmm2 217 pxor %xmm0,%xmm4 218 psrlq $5,%xmm0 219 pxor %xmm4,%xmm0 220 psrlq $1,%xmm0 221 pxor %xmm1,%xmm0 222.byte 102,15,58,68,221,0 223 leal 32(%esi),%esi 224 subl $32,%ebx 225 ja L005mod_loop 226L004even_tail: 227 pshufd $78,%xmm0,%xmm4 228 movdqa %xmm0,%xmm1 229 pxor %xmm0,%xmm4 230.byte 102,15,58,68,194,0 231.byte 102,15,58,68,202,17 232.byte 102,15,58,68,229,16 233 movdqa (%ecx),%xmm5 234 xorps %xmm6,%xmm0 235 xorps %xmm7,%xmm1 236 pxor %xmm0,%xmm3 237 pxor %xmm1,%xmm3 238 pxor %xmm3,%xmm4 239 movdqa %xmm4,%xmm3 240 psrldq $8,%xmm4 241 pslldq $8,%xmm3 242 pxor %xmm4,%xmm1 243 pxor %xmm3,%xmm0 244 movdqa %xmm0,%xmm4 245 movdqa %xmm0,%xmm3 246 psllq $5,%xmm0 247 pxor %xmm0,%xmm3 248 psllq $1,%xmm0 249 pxor %xmm3,%xmm0 250 psllq $57,%xmm0 251 movdqa %xmm0,%xmm3 252 pslldq $8,%xmm0 253 psrldq $8,%xmm3 254 pxor %xmm4,%xmm0 255 pxor %xmm3,%xmm1 256 movdqa %xmm0,%xmm4 257 psrlq $1,%xmm0 258 pxor %xmm4,%xmm1 259 pxor %xmm0,%xmm4 260 psrlq $5,%xmm0 261 pxor %xmm4,%xmm0 262 psrlq $1,%xmm0 263 pxor %xmm1,%xmm0 264 testl %ebx,%ebx 265 jnz L006done 266 movups (%edx),%xmm2 267L003odd_tail: 268 movdqu (%esi),%xmm3 269.byte 102,15,56,0,221 270 pxor %xmm3,%xmm0 271 movdqa %xmm0,%xmm1 272 pshufd $78,%xmm0,%xmm3 273 pshufd $78,%xmm2,%xmm4 274 pxor %xmm0,%xmm3 275 pxor %xmm2,%xmm4 276.byte 102,15,58,68,194,0 277.byte 102,15,58,68,202,17 278.byte 102,15,58,68,220,0 279 xorps %xmm0,%xmm3 280 xorps %xmm1,%xmm3 281 movdqa %xmm3,%xmm4 282 psrldq $8,%xmm3 283 pslldq $8,%xmm4 284 pxor %xmm3,%xmm1 285 pxor %xmm4,%xmm0 286 movdqa %xmm0,%xmm4 287 movdqa %xmm0,%xmm3 288 psllq $5,%xmm0 289 pxor %xmm0,%xmm3 290 psllq $1,%xmm0 291 pxor %xmm3,%xmm0 292 psllq $57,%xmm0 293 movdqa %xmm0,%xmm3 294 pslldq $8,%xmm0 295 psrldq $8,%xmm3 296 pxor %xmm4,%xmm0 297 pxor %xmm3,%xmm1 298 movdqa %xmm0,%xmm4 299 psrlq $1,%xmm0 300 pxor %xmm4,%xmm1 301 pxor %xmm0,%xmm4 302 psrlq $5,%xmm0 303 pxor %xmm4,%xmm0 304 psrlq $1,%xmm0 305 pxor %xmm1,%xmm0 306L006done: 307.byte 102,15,56,0,197 308 movdqu %xmm0,(%eax) 309 popl %edi 310 popl %esi 311 popl %ebx 312 popl %ebp 313 ret 314.align 6,0x90 315Lbswap: 316.byte 15,14,13,12,11,10,9,8,7,6,5,4,3,2,1,0 317.byte 1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,194 318.byte 71,72,65,83,72,32,102,111,114,32,120,56,54,44,32,67 319.byte 82,89,80,84,79,71,65,77,83,32,98,121,32,60,97,112 320.byte 112,114,111,64,111,112,101,110,115,115,108,46,111,114,103,62 321.byte 0 322#endif // !defined(OPENSSL_NO_ASM) && defined(OPENSSL_X86) && defined(__APPLE__) 323