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#if defined(BORINGSSL_PREFIX) 6#include <boringssl_prefix_symbols_asm.h> 7#endif 8.text 9.globl gcm_gmult_ssse3 10.hidden gcm_gmult_ssse3 11.type gcm_gmult_ssse3,@function 12.align 16 13gcm_gmult_ssse3: 14.L_gcm_gmult_ssse3_begin: 15 pushl %ebp 16 pushl %ebx 17 pushl %esi 18 pushl %edi 19 movl 20(%esp),%edi 20 movl 24(%esp),%esi 21 movdqu (%edi),%xmm0 22 call .L000pic_point 23.L000pic_point: 24 popl %eax 25 movdqa .Lreverse_bytes-.L000pic_point(%eax),%xmm7 26 movdqa .Llow4_mask-.L000pic_point(%eax),%xmm2 27.byte 102,15,56,0,199 28 movdqa %xmm2,%xmm1 29 pandn %xmm0,%xmm1 30 psrld $4,%xmm1 31 pand %xmm2,%xmm0 32 pxor %xmm2,%xmm2 33 pxor %xmm3,%xmm3 34 movl $5,%eax 35.L001loop_row_1: 36 movdqa (%esi),%xmm4 37 leal 16(%esi),%esi 38 movdqa %xmm2,%xmm6 39.byte 102,15,58,15,243,1 40 movdqa %xmm6,%xmm3 41 psrldq $1,%xmm2 42 movdqa %xmm4,%xmm5 43.byte 102,15,56,0,224 44.byte 102,15,56,0,233 45 pxor %xmm5,%xmm2 46 movdqa %xmm4,%xmm5 47 psllq $60,%xmm5 48 movdqa %xmm5,%xmm6 49 pslldq $8,%xmm6 50 pxor %xmm6,%xmm3 51 psrldq $8,%xmm5 52 pxor %xmm5,%xmm2 53 psrlq $4,%xmm4 54 pxor %xmm4,%xmm2 55 subl $1,%eax 56 jnz .L001loop_row_1 57 pxor %xmm3,%xmm2 58 psrlq $1,%xmm3 59 pxor %xmm3,%xmm2 60 psrlq $1,%xmm3 61 pxor %xmm3,%xmm2 62 psrlq $5,%xmm3 63 pxor %xmm3,%xmm2 64 pxor %xmm3,%xmm3 65 movl $5,%eax 66.L002loop_row_2: 67 movdqa (%esi),%xmm4 68 leal 16(%esi),%esi 69 movdqa %xmm2,%xmm6 70.byte 102,15,58,15,243,1 71 movdqa %xmm6,%xmm3 72 psrldq $1,%xmm2 73 movdqa %xmm4,%xmm5 74.byte 102,15,56,0,224 75.byte 102,15,56,0,233 76 pxor %xmm5,%xmm2 77 movdqa %xmm4,%xmm5 78 psllq $60,%xmm5 79 movdqa %xmm5,%xmm6 80 pslldq $8,%xmm6 81 pxor %xmm6,%xmm3 82 psrldq $8,%xmm5 83 pxor %xmm5,%xmm2 84 psrlq $4,%xmm4 85 pxor %xmm4,%xmm2 86 subl $1,%eax 87 jnz .L002loop_row_2 88 pxor %xmm3,%xmm2 89 psrlq $1,%xmm3 90 pxor %xmm3,%xmm2 91 psrlq $1,%xmm3 92 pxor %xmm3,%xmm2 93 psrlq $5,%xmm3 94 pxor %xmm3,%xmm2 95 pxor %xmm3,%xmm3 96 movl $6,%eax 97.L003loop_row_3: 98 movdqa (%esi),%xmm4 99 leal 16(%esi),%esi 100 movdqa %xmm2,%xmm6 101.byte 102,15,58,15,243,1 102 movdqa %xmm6,%xmm3 103 psrldq $1,%xmm2 104 movdqa %xmm4,%xmm5 105.byte 102,15,56,0,224 106.byte 102,15,56,0,233 107 pxor %xmm5,%xmm2 108 movdqa %xmm4,%xmm5 109 psllq $60,%xmm5 110 movdqa %xmm5,%xmm6 111 pslldq $8,%xmm6 112 pxor %xmm6,%xmm3 113 psrldq $8,%xmm5 114 pxor %xmm5,%xmm2 115 psrlq $4,%xmm4 116 pxor %xmm4,%xmm2 117 subl $1,%eax 118 jnz .L003loop_row_3 119 pxor %xmm3,%xmm2 120 psrlq $1,%xmm3 121 pxor %xmm3,%xmm2 122 psrlq $1,%xmm3 123 pxor %xmm3,%xmm2 124 psrlq $5,%xmm3 125 pxor %xmm3,%xmm2 126 pxor %xmm3,%xmm3 127.byte 102,15,56,0,215 128 movdqu %xmm2,(%edi) 129 pxor %xmm0,%xmm0 130 pxor %xmm1,%xmm1 131 pxor %xmm2,%xmm2 132 pxor %xmm3,%xmm3 133 pxor %xmm4,%xmm4 134 pxor %xmm5,%xmm5 135 pxor %xmm6,%xmm6 136 popl %edi 137 popl %esi 138 popl %ebx 139 popl %ebp 140 ret 141.size gcm_gmult_ssse3,.-.L_gcm_gmult_ssse3_begin 142.globl gcm_ghash_ssse3 143.hidden gcm_ghash_ssse3 144.type gcm_ghash_ssse3,@function 145.align 16 146gcm_ghash_ssse3: 147.L_gcm_ghash_ssse3_begin: 148 pushl %ebp 149 pushl %ebx 150 pushl %esi 151 pushl %edi 152 movl 20(%esp),%edi 153 movl 24(%esp),%esi 154 movl 28(%esp),%edx 155 movl 32(%esp),%ecx 156 movdqu (%edi),%xmm0 157 call .L004pic_point 158.L004pic_point: 159 popl %ebx 160 movdqa .Lreverse_bytes-.L004pic_point(%ebx),%xmm7 161 andl $-16,%ecx 162.byte 102,15,56,0,199 163 pxor %xmm3,%xmm3 164.L005loop_ghash: 165 movdqa .Llow4_mask-.L004pic_point(%ebx),%xmm2 166 movdqu (%edx),%xmm1 167.byte 102,15,56,0,207 168 pxor %xmm1,%xmm0 169 movdqa %xmm2,%xmm1 170 pandn %xmm0,%xmm1 171 psrld $4,%xmm1 172 pand %xmm2,%xmm0 173 pxor %xmm2,%xmm2 174 movl $5,%eax 175.L006loop_row_4: 176 movdqa (%esi),%xmm4 177 leal 16(%esi),%esi 178 movdqa %xmm2,%xmm6 179.byte 102,15,58,15,243,1 180 movdqa %xmm6,%xmm3 181 psrldq $1,%xmm2 182 movdqa %xmm4,%xmm5 183.byte 102,15,56,0,224 184.byte 102,15,56,0,233 185 pxor %xmm5,%xmm2 186 movdqa %xmm4,%xmm5 187 psllq $60,%xmm5 188 movdqa %xmm5,%xmm6 189 pslldq $8,%xmm6 190 pxor %xmm6,%xmm3 191 psrldq $8,%xmm5 192 pxor %xmm5,%xmm2 193 psrlq $4,%xmm4 194 pxor %xmm4,%xmm2 195 subl $1,%eax 196 jnz .L006loop_row_4 197 pxor %xmm3,%xmm2 198 psrlq $1,%xmm3 199 pxor %xmm3,%xmm2 200 psrlq $1,%xmm3 201 pxor %xmm3,%xmm2 202 psrlq $5,%xmm3 203 pxor %xmm3,%xmm2 204 pxor %xmm3,%xmm3 205 movl $5,%eax 206.L007loop_row_5: 207 movdqa (%esi),%xmm4 208 leal 16(%esi),%esi 209 movdqa %xmm2,%xmm6 210.byte 102,15,58,15,243,1 211 movdqa %xmm6,%xmm3 212 psrldq $1,%xmm2 213 movdqa %xmm4,%xmm5 214.byte 102,15,56,0,224 215.byte 102,15,56,0,233 216 pxor %xmm5,%xmm2 217 movdqa %xmm4,%xmm5 218 psllq $60,%xmm5 219 movdqa %xmm5,%xmm6 220 pslldq $8,%xmm6 221 pxor %xmm6,%xmm3 222 psrldq $8,%xmm5 223 pxor %xmm5,%xmm2 224 psrlq $4,%xmm4 225 pxor %xmm4,%xmm2 226 subl $1,%eax 227 jnz .L007loop_row_5 228 pxor %xmm3,%xmm2 229 psrlq $1,%xmm3 230 pxor %xmm3,%xmm2 231 psrlq $1,%xmm3 232 pxor %xmm3,%xmm2 233 psrlq $5,%xmm3 234 pxor %xmm3,%xmm2 235 pxor %xmm3,%xmm3 236 movl $6,%eax 237.L008loop_row_6: 238 movdqa (%esi),%xmm4 239 leal 16(%esi),%esi 240 movdqa %xmm2,%xmm6 241.byte 102,15,58,15,243,1 242 movdqa %xmm6,%xmm3 243 psrldq $1,%xmm2 244 movdqa %xmm4,%xmm5 245.byte 102,15,56,0,224 246.byte 102,15,56,0,233 247 pxor %xmm5,%xmm2 248 movdqa %xmm4,%xmm5 249 psllq $60,%xmm5 250 movdqa %xmm5,%xmm6 251 pslldq $8,%xmm6 252 pxor %xmm6,%xmm3 253 psrldq $8,%xmm5 254 pxor %xmm5,%xmm2 255 psrlq $4,%xmm4 256 pxor %xmm4,%xmm2 257 subl $1,%eax 258 jnz .L008loop_row_6 259 pxor %xmm3,%xmm2 260 psrlq $1,%xmm3 261 pxor %xmm3,%xmm2 262 psrlq $1,%xmm3 263 pxor %xmm3,%xmm2 264 psrlq $5,%xmm3 265 pxor %xmm3,%xmm2 266 pxor %xmm3,%xmm3 267 movdqa %xmm2,%xmm0 268 leal -256(%esi),%esi 269 leal 16(%edx),%edx 270 subl $16,%ecx 271 jnz .L005loop_ghash 272.byte 102,15,56,0,199 273 movdqu %xmm0,(%edi) 274 pxor %xmm0,%xmm0 275 pxor %xmm1,%xmm1 276 pxor %xmm2,%xmm2 277 pxor %xmm3,%xmm3 278 pxor %xmm4,%xmm4 279 pxor %xmm5,%xmm5 280 pxor %xmm6,%xmm6 281 popl %edi 282 popl %esi 283 popl %ebx 284 popl %ebp 285 ret 286.size gcm_ghash_ssse3,.-.L_gcm_ghash_ssse3_begin 287.align 16 288.Lreverse_bytes: 289.byte 15,14,13,12,11,10,9,8,7,6,5,4,3,2,1,0 290.align 16 291.Llow4_mask: 292.long 252645135,252645135,252645135,252645135 293#endif 294.section .note.GNU-stack,"",@progbits 295