1c58cd0fd2cebb61b0e0f200e01562c542525ef46Catalin Ionita.file "ghash-x86.s" 2c58cd0fd2cebb61b0e0f200e01562c542525ef46Catalin Ionita.text 3c58cd0fd2cebb61b0e0f200e01562c542525ef46Catalin Ionita.globl gcm_gmult_4bit_x86 4c58cd0fd2cebb61b0e0f200e01562c542525ef46Catalin Ionita.type gcm_gmult_4bit_x86,@function 5c58cd0fd2cebb61b0e0f200e01562c542525ef46Catalin Ionita.align 16 6c58cd0fd2cebb61b0e0f200e01562c542525ef46Catalin Ionitagcm_gmult_4bit_x86: 7c58cd0fd2cebb61b0e0f200e01562c542525ef46Catalin Ionita.L_gcm_gmult_4bit_x86_begin: 8c58cd0fd2cebb61b0e0f200e01562c542525ef46Catalin Ionita pushl %ebp 9c58cd0fd2cebb61b0e0f200e01562c542525ef46Catalin Ionita pushl %ebx 10c58cd0fd2cebb61b0e0f200e01562c542525ef46Catalin Ionita pushl %esi 11c58cd0fd2cebb61b0e0f200e01562c542525ef46Catalin Ionita pushl %edi 12c58cd0fd2cebb61b0e0f200e01562c542525ef46Catalin Ionita subl $84,%esp 13c58cd0fd2cebb61b0e0f200e01562c542525ef46Catalin Ionita movl 104(%esp),%edi 14c58cd0fd2cebb61b0e0f200e01562c542525ef46Catalin Ionita movl 108(%esp),%esi 15c58cd0fd2cebb61b0e0f200e01562c542525ef46Catalin Ionita movl (%edi),%ebp 16c58cd0fd2cebb61b0e0f200e01562c542525ef46Catalin Ionita movl 4(%edi),%edx 17c58cd0fd2cebb61b0e0f200e01562c542525ef46Catalin Ionita movl 8(%edi),%ecx 18c58cd0fd2cebb61b0e0f200e01562c542525ef46Catalin Ionita movl 12(%edi),%ebx 19c58cd0fd2cebb61b0e0f200e01562c542525ef46Catalin Ionita movl $0,16(%esp) 20c58cd0fd2cebb61b0e0f200e01562c542525ef46Catalin Ionita movl $471859200,20(%esp) 21c58cd0fd2cebb61b0e0f200e01562c542525ef46Catalin Ionita movl $943718400,24(%esp) 22c58cd0fd2cebb61b0e0f200e01562c542525ef46Catalin Ionita movl $610271232,28(%esp) 23c58cd0fd2cebb61b0e0f200e01562c542525ef46Catalin Ionita movl $1887436800,32(%esp) 24c58cd0fd2cebb61b0e0f200e01562c542525ef46Catalin Ionita movl $1822425088,36(%esp) 25c58cd0fd2cebb61b0e0f200e01562c542525ef46Catalin Ionita movl $1220542464,40(%esp) 26c58cd0fd2cebb61b0e0f200e01562c542525ef46Catalin Ionita movl $1423966208,44(%esp) 27c58cd0fd2cebb61b0e0f200e01562c542525ef46Catalin Ionita movl $3774873600,48(%esp) 28c58cd0fd2cebb61b0e0f200e01562c542525ef46Catalin Ionita movl $4246732800,52(%esp) 29c58cd0fd2cebb61b0e0f200e01562c542525ef46Catalin Ionita movl $3644850176,56(%esp) 30c58cd0fd2cebb61b0e0f200e01562c542525ef46Catalin Ionita movl $3311403008,60(%esp) 31c58cd0fd2cebb61b0e0f200e01562c542525ef46Catalin Ionita movl $2441084928,64(%esp) 32c58cd0fd2cebb61b0e0f200e01562c542525ef46Catalin Ionita movl $2376073216,68(%esp) 33c58cd0fd2cebb61b0e0f200e01562c542525ef46Catalin Ionita movl $2847932416,72(%esp) 34c58cd0fd2cebb61b0e0f200e01562c542525ef46Catalin Ionita movl $3051356160,76(%esp) 35c58cd0fd2cebb61b0e0f200e01562c542525ef46Catalin Ionita movl %ebp,(%esp) 36c58cd0fd2cebb61b0e0f200e01562c542525ef46Catalin Ionita movl %edx,4(%esp) 37c58cd0fd2cebb61b0e0f200e01562c542525ef46Catalin Ionita movl %ecx,8(%esp) 38c58cd0fd2cebb61b0e0f200e01562c542525ef46Catalin Ionita movl %ebx,12(%esp) 39c58cd0fd2cebb61b0e0f200e01562c542525ef46Catalin Ionita shrl $20,%ebx 40c58cd0fd2cebb61b0e0f200e01562c542525ef46Catalin Ionita andl $240,%ebx 41c58cd0fd2cebb61b0e0f200e01562c542525ef46Catalin Ionita movl 4(%esi,%ebx,1),%ebp 42c58cd0fd2cebb61b0e0f200e01562c542525ef46Catalin Ionita movl (%esi,%ebx,1),%edx 43c58cd0fd2cebb61b0e0f200e01562c542525ef46Catalin Ionita movl 12(%esi,%ebx,1),%ecx 44c58cd0fd2cebb61b0e0f200e01562c542525ef46Catalin Ionita movl 8(%esi,%ebx,1),%ebx 45c58cd0fd2cebb61b0e0f200e01562c542525ef46Catalin Ionita xorl %eax,%eax 46c58cd0fd2cebb61b0e0f200e01562c542525ef46Catalin Ionita movl $15,%edi 47c58cd0fd2cebb61b0e0f200e01562c542525ef46Catalin Ionita jmp .L000x86_loop 48c58cd0fd2cebb61b0e0f200e01562c542525ef46Catalin Ionita.align 16 49c58cd0fd2cebb61b0e0f200e01562c542525ef46Catalin Ionita.L000x86_loop: 50c58cd0fd2cebb61b0e0f200e01562c542525ef46Catalin Ionita movb %bl,%al 51c58cd0fd2cebb61b0e0f200e01562c542525ef46Catalin Ionita shrdl $4,%ecx,%ebx 52c58cd0fd2cebb61b0e0f200e01562c542525ef46Catalin Ionita andb $15,%al 53c58cd0fd2cebb61b0e0f200e01562c542525ef46Catalin Ionita shrdl $4,%edx,%ecx 54c58cd0fd2cebb61b0e0f200e01562c542525ef46Catalin Ionita shrdl $4,%ebp,%edx 55c58cd0fd2cebb61b0e0f200e01562c542525ef46Catalin Ionita shrl $4,%ebp 56c58cd0fd2cebb61b0e0f200e01562c542525ef46Catalin Ionita xorl 16(%esp,%eax,4),%ebp 57c58cd0fd2cebb61b0e0f200e01562c542525ef46Catalin Ionita movb (%esp,%edi,1),%al 58c58cd0fd2cebb61b0e0f200e01562c542525ef46Catalin Ionita andb $240,%al 59c58cd0fd2cebb61b0e0f200e01562c542525ef46Catalin Ionita xorl 8(%esi,%eax,1),%ebx 60c58cd0fd2cebb61b0e0f200e01562c542525ef46Catalin Ionita xorl 12(%esi,%eax,1),%ecx 61c58cd0fd2cebb61b0e0f200e01562c542525ef46Catalin Ionita xorl (%esi,%eax,1),%edx 62c58cd0fd2cebb61b0e0f200e01562c542525ef46Catalin Ionita xorl 4(%esi,%eax,1),%ebp 63c58cd0fd2cebb61b0e0f200e01562c542525ef46Catalin Ionita decl %edi 64c58cd0fd2cebb61b0e0f200e01562c542525ef46Catalin Ionita js .L001x86_break 65c58cd0fd2cebb61b0e0f200e01562c542525ef46Catalin Ionita movb %bl,%al 66c58cd0fd2cebb61b0e0f200e01562c542525ef46Catalin Ionita shrdl $4,%ecx,%ebx 67c58cd0fd2cebb61b0e0f200e01562c542525ef46Catalin Ionita andb $15,%al 68c58cd0fd2cebb61b0e0f200e01562c542525ef46Catalin Ionita shrdl $4,%edx,%ecx 69c58cd0fd2cebb61b0e0f200e01562c542525ef46Catalin Ionita shrdl $4,%ebp,%edx 70c58cd0fd2cebb61b0e0f200e01562c542525ef46Catalin Ionita shrl $4,%ebp 71c58cd0fd2cebb61b0e0f200e01562c542525ef46Catalin Ionita xorl 16(%esp,%eax,4),%ebp 72c58cd0fd2cebb61b0e0f200e01562c542525ef46Catalin Ionita movb (%esp,%edi,1),%al 73c58cd0fd2cebb61b0e0f200e01562c542525ef46Catalin Ionita shlb $4,%al 74c58cd0fd2cebb61b0e0f200e01562c542525ef46Catalin Ionita xorl 8(%esi,%eax,1),%ebx 75c58cd0fd2cebb61b0e0f200e01562c542525ef46Catalin Ionita xorl 12(%esi,%eax,1),%ecx 76c58cd0fd2cebb61b0e0f200e01562c542525ef46Catalin Ionita xorl (%esi,%eax,1),%edx 77c58cd0fd2cebb61b0e0f200e01562c542525ef46Catalin Ionita xorl 4(%esi,%eax,1),%ebp 78c58cd0fd2cebb61b0e0f200e01562c542525ef46Catalin Ionita jmp .L000x86_loop 79c58cd0fd2cebb61b0e0f200e01562c542525ef46Catalin Ionita.align 16 80c58cd0fd2cebb61b0e0f200e01562c542525ef46Catalin Ionita.L001x86_break: 81c58cd0fd2cebb61b0e0f200e01562c542525ef46Catalin Ionita bswap %ebx 82c58cd0fd2cebb61b0e0f200e01562c542525ef46Catalin Ionita bswap %ecx 83c58cd0fd2cebb61b0e0f200e01562c542525ef46Catalin Ionita bswap %edx 84c58cd0fd2cebb61b0e0f200e01562c542525ef46Catalin Ionita bswap %ebp 85c58cd0fd2cebb61b0e0f200e01562c542525ef46Catalin Ionita movl 104(%esp),%edi 86c58cd0fd2cebb61b0e0f200e01562c542525ef46Catalin Ionita movl %ebx,12(%edi) 87c58cd0fd2cebb61b0e0f200e01562c542525ef46Catalin Ionita movl %ecx,8(%edi) 88c58cd0fd2cebb61b0e0f200e01562c542525ef46Catalin Ionita movl %edx,4(%edi) 89c58cd0fd2cebb61b0e0f200e01562c542525ef46Catalin Ionita movl %ebp,(%edi) 90c58cd0fd2cebb61b0e0f200e01562c542525ef46Catalin Ionita addl $84,%esp 91c58cd0fd2cebb61b0e0f200e01562c542525ef46Catalin Ionita popl %edi 92c58cd0fd2cebb61b0e0f200e01562c542525ef46Catalin Ionita popl %esi 93c58cd0fd2cebb61b0e0f200e01562c542525ef46Catalin Ionita popl %ebx 94c58cd0fd2cebb61b0e0f200e01562c542525ef46Catalin Ionita popl %ebp 95c58cd0fd2cebb61b0e0f200e01562c542525ef46Catalin Ionita ret 96c58cd0fd2cebb61b0e0f200e01562c542525ef46Catalin Ionita.size gcm_gmult_4bit_x86,.-.L_gcm_gmult_4bit_x86_begin 97c58cd0fd2cebb61b0e0f200e01562c542525ef46Catalin Ionita.globl gcm_ghash_4bit_x86 98c58cd0fd2cebb61b0e0f200e01562c542525ef46Catalin Ionita.type gcm_ghash_4bit_x86,@function 99c58cd0fd2cebb61b0e0f200e01562c542525ef46Catalin Ionita.align 16 100c58cd0fd2cebb61b0e0f200e01562c542525ef46Catalin Ionitagcm_ghash_4bit_x86: 101c58cd0fd2cebb61b0e0f200e01562c542525ef46Catalin Ionita.L_gcm_ghash_4bit_x86_begin: 102c58cd0fd2cebb61b0e0f200e01562c542525ef46Catalin Ionita pushl %ebp 103c58cd0fd2cebb61b0e0f200e01562c542525ef46Catalin Ionita pushl %ebx 104c58cd0fd2cebb61b0e0f200e01562c542525ef46Catalin Ionita pushl %esi 105c58cd0fd2cebb61b0e0f200e01562c542525ef46Catalin Ionita pushl %edi 106c58cd0fd2cebb61b0e0f200e01562c542525ef46Catalin Ionita subl $84,%esp 107c58cd0fd2cebb61b0e0f200e01562c542525ef46Catalin Ionita movl 104(%esp),%ebx 108c58cd0fd2cebb61b0e0f200e01562c542525ef46Catalin Ionita movl 108(%esp),%esi 109c58cd0fd2cebb61b0e0f200e01562c542525ef46Catalin Ionita movl 112(%esp),%edi 110c58cd0fd2cebb61b0e0f200e01562c542525ef46Catalin Ionita movl 116(%esp),%ecx 111c58cd0fd2cebb61b0e0f200e01562c542525ef46Catalin Ionita addl %edi,%ecx 112c58cd0fd2cebb61b0e0f200e01562c542525ef46Catalin Ionita movl %ecx,116(%esp) 113c58cd0fd2cebb61b0e0f200e01562c542525ef46Catalin Ionita movl (%ebx),%ebp 114c58cd0fd2cebb61b0e0f200e01562c542525ef46Catalin Ionita movl 4(%ebx),%edx 115c58cd0fd2cebb61b0e0f200e01562c542525ef46Catalin Ionita movl 8(%ebx),%ecx 116c58cd0fd2cebb61b0e0f200e01562c542525ef46Catalin Ionita movl 12(%ebx),%ebx 117c58cd0fd2cebb61b0e0f200e01562c542525ef46Catalin Ionita movl $0,16(%esp) 118c58cd0fd2cebb61b0e0f200e01562c542525ef46Catalin Ionita movl $471859200,20(%esp) 119c58cd0fd2cebb61b0e0f200e01562c542525ef46Catalin Ionita movl $943718400,24(%esp) 120c58cd0fd2cebb61b0e0f200e01562c542525ef46Catalin Ionita movl $610271232,28(%esp) 121c58cd0fd2cebb61b0e0f200e01562c542525ef46Catalin Ionita movl $1887436800,32(%esp) 122c58cd0fd2cebb61b0e0f200e01562c542525ef46Catalin Ionita movl $1822425088,36(%esp) 123c58cd0fd2cebb61b0e0f200e01562c542525ef46Catalin Ionita movl $1220542464,40(%esp) 124c58cd0fd2cebb61b0e0f200e01562c542525ef46Catalin Ionita movl $1423966208,44(%esp) 125c58cd0fd2cebb61b0e0f200e01562c542525ef46Catalin Ionita movl $3774873600,48(%esp) 126c58cd0fd2cebb61b0e0f200e01562c542525ef46Catalin Ionita movl $4246732800,52(%esp) 127c58cd0fd2cebb61b0e0f200e01562c542525ef46Catalin Ionita movl $3644850176,56(%esp) 128c58cd0fd2cebb61b0e0f200e01562c542525ef46Catalin Ionita movl $3311403008,60(%esp) 129c58cd0fd2cebb61b0e0f200e01562c542525ef46Catalin Ionita movl $2441084928,64(%esp) 130c58cd0fd2cebb61b0e0f200e01562c542525ef46Catalin Ionita movl $2376073216,68(%esp) 131c58cd0fd2cebb61b0e0f200e01562c542525ef46Catalin Ionita movl $2847932416,72(%esp) 132c58cd0fd2cebb61b0e0f200e01562c542525ef46Catalin Ionita movl $3051356160,76(%esp) 133c58cd0fd2cebb61b0e0f200e01562c542525ef46Catalin Ionita.align 16 134c58cd0fd2cebb61b0e0f200e01562c542525ef46Catalin Ionita.L002x86_outer_loop: 135c58cd0fd2cebb61b0e0f200e01562c542525ef46Catalin Ionita xorl 12(%edi),%ebx 136c58cd0fd2cebb61b0e0f200e01562c542525ef46Catalin Ionita xorl 8(%edi),%ecx 137c58cd0fd2cebb61b0e0f200e01562c542525ef46Catalin Ionita xorl 4(%edi),%edx 138c58cd0fd2cebb61b0e0f200e01562c542525ef46Catalin Ionita xorl (%edi),%ebp 139c58cd0fd2cebb61b0e0f200e01562c542525ef46Catalin Ionita movl %ebx,12(%esp) 140c58cd0fd2cebb61b0e0f200e01562c542525ef46Catalin Ionita movl %ecx,8(%esp) 141c58cd0fd2cebb61b0e0f200e01562c542525ef46Catalin Ionita movl %edx,4(%esp) 142c58cd0fd2cebb61b0e0f200e01562c542525ef46Catalin Ionita movl %ebp,(%esp) 143c58cd0fd2cebb61b0e0f200e01562c542525ef46Catalin Ionita shrl $20,%ebx 144c58cd0fd2cebb61b0e0f200e01562c542525ef46Catalin Ionita andl $240,%ebx 145c58cd0fd2cebb61b0e0f200e01562c542525ef46Catalin Ionita movl 4(%esi,%ebx,1),%ebp 146c58cd0fd2cebb61b0e0f200e01562c542525ef46Catalin Ionita movl (%esi,%ebx,1),%edx 147c58cd0fd2cebb61b0e0f200e01562c542525ef46Catalin Ionita movl 12(%esi,%ebx,1),%ecx 148c58cd0fd2cebb61b0e0f200e01562c542525ef46Catalin Ionita movl 8(%esi,%ebx,1),%ebx 149c58cd0fd2cebb61b0e0f200e01562c542525ef46Catalin Ionita xorl %eax,%eax 150c58cd0fd2cebb61b0e0f200e01562c542525ef46Catalin Ionita movl $15,%edi 151c58cd0fd2cebb61b0e0f200e01562c542525ef46Catalin Ionita jmp .L003x86_loop 152c58cd0fd2cebb61b0e0f200e01562c542525ef46Catalin Ionita.align 16 153c58cd0fd2cebb61b0e0f200e01562c542525ef46Catalin Ionita.L003x86_loop: 154c58cd0fd2cebb61b0e0f200e01562c542525ef46Catalin Ionita movb %bl,%al 155c58cd0fd2cebb61b0e0f200e01562c542525ef46Catalin Ionita shrdl $4,%ecx,%ebx 156c58cd0fd2cebb61b0e0f200e01562c542525ef46Catalin Ionita andb $15,%al 157c58cd0fd2cebb61b0e0f200e01562c542525ef46Catalin Ionita shrdl $4,%edx,%ecx 158c58cd0fd2cebb61b0e0f200e01562c542525ef46Catalin Ionita shrdl $4,%ebp,%edx 159c58cd0fd2cebb61b0e0f200e01562c542525ef46Catalin Ionita shrl $4,%ebp 160c58cd0fd2cebb61b0e0f200e01562c542525ef46Catalin Ionita xorl 16(%esp,%eax,4),%ebp 161c58cd0fd2cebb61b0e0f200e01562c542525ef46Catalin Ionita movb (%esp,%edi,1),%al 162c58cd0fd2cebb61b0e0f200e01562c542525ef46Catalin Ionita andb $240,%al 163c58cd0fd2cebb61b0e0f200e01562c542525ef46Catalin Ionita xorl 8(%esi,%eax,1),%ebx 164c58cd0fd2cebb61b0e0f200e01562c542525ef46Catalin Ionita xorl 12(%esi,%eax,1),%ecx 165c58cd0fd2cebb61b0e0f200e01562c542525ef46Catalin Ionita xorl (%esi,%eax,1),%edx 166c58cd0fd2cebb61b0e0f200e01562c542525ef46Catalin Ionita xorl 4(%esi,%eax,1),%ebp 167c58cd0fd2cebb61b0e0f200e01562c542525ef46Catalin Ionita decl %edi 168c58cd0fd2cebb61b0e0f200e01562c542525ef46Catalin Ionita js .L004x86_break 169c58cd0fd2cebb61b0e0f200e01562c542525ef46Catalin Ionita movb %bl,%al 170c58cd0fd2cebb61b0e0f200e01562c542525ef46Catalin Ionita shrdl $4,%ecx,%ebx 171c58cd0fd2cebb61b0e0f200e01562c542525ef46Catalin Ionita andb $15,%al 172c58cd0fd2cebb61b0e0f200e01562c542525ef46Catalin Ionita shrdl $4,%edx,%ecx 173c58cd0fd2cebb61b0e0f200e01562c542525ef46Catalin Ionita shrdl $4,%ebp,%edx 174c58cd0fd2cebb61b0e0f200e01562c542525ef46Catalin Ionita shrl $4,%ebp 175c58cd0fd2cebb61b0e0f200e01562c542525ef46Catalin Ionita xorl 16(%esp,%eax,4),%ebp 176c58cd0fd2cebb61b0e0f200e01562c542525ef46Catalin Ionita movb (%esp,%edi,1),%al 177c58cd0fd2cebb61b0e0f200e01562c542525ef46Catalin Ionita shlb $4,%al 178c58cd0fd2cebb61b0e0f200e01562c542525ef46Catalin Ionita xorl 8(%esi,%eax,1),%ebx 179c58cd0fd2cebb61b0e0f200e01562c542525ef46Catalin Ionita xorl 12(%esi,%eax,1),%ecx 180c58cd0fd2cebb61b0e0f200e01562c542525ef46Catalin Ionita xorl (%esi,%eax,1),%edx 181c58cd0fd2cebb61b0e0f200e01562c542525ef46Catalin Ionita xorl 4(%esi,%eax,1),%ebp 182c58cd0fd2cebb61b0e0f200e01562c542525ef46Catalin Ionita jmp .L003x86_loop 183c58cd0fd2cebb61b0e0f200e01562c542525ef46Catalin Ionita.align 16 184c58cd0fd2cebb61b0e0f200e01562c542525ef46Catalin Ionita.L004x86_break: 185c58cd0fd2cebb61b0e0f200e01562c542525ef46Catalin Ionita bswap %ebx 186c58cd0fd2cebb61b0e0f200e01562c542525ef46Catalin Ionita bswap %ecx 187c58cd0fd2cebb61b0e0f200e01562c542525ef46Catalin Ionita bswap %edx 188c58cd0fd2cebb61b0e0f200e01562c542525ef46Catalin Ionita bswap %ebp 189c58cd0fd2cebb61b0e0f200e01562c542525ef46Catalin Ionita movl 112(%esp),%edi 190c58cd0fd2cebb61b0e0f200e01562c542525ef46Catalin Ionita leal 16(%edi),%edi 191c58cd0fd2cebb61b0e0f200e01562c542525ef46Catalin Ionita cmpl 116(%esp),%edi 192c58cd0fd2cebb61b0e0f200e01562c542525ef46Catalin Ionita movl %edi,112(%esp) 193c58cd0fd2cebb61b0e0f200e01562c542525ef46Catalin Ionita jb .L002x86_outer_loop 194c58cd0fd2cebb61b0e0f200e01562c542525ef46Catalin Ionita movl 104(%esp),%edi 195c58cd0fd2cebb61b0e0f200e01562c542525ef46Catalin Ionita movl %ebx,12(%edi) 196c58cd0fd2cebb61b0e0f200e01562c542525ef46Catalin Ionita movl %ecx,8(%edi) 197c58cd0fd2cebb61b0e0f200e01562c542525ef46Catalin Ionita movl %edx,4(%edi) 198c58cd0fd2cebb61b0e0f200e01562c542525ef46Catalin Ionita movl %ebp,(%edi) 199c58cd0fd2cebb61b0e0f200e01562c542525ef46Catalin Ionita addl $84,%esp 200c58cd0fd2cebb61b0e0f200e01562c542525ef46Catalin Ionita popl %edi 201c58cd0fd2cebb61b0e0f200e01562c542525ef46Catalin Ionita popl %esi 202c58cd0fd2cebb61b0e0f200e01562c542525ef46Catalin Ionita popl %ebx 203c58cd0fd2cebb61b0e0f200e01562c542525ef46Catalin Ionita popl %ebp 204c58cd0fd2cebb61b0e0f200e01562c542525ef46Catalin Ionita ret 205c58cd0fd2cebb61b0e0f200e01562c542525ef46Catalin Ionita.size gcm_ghash_4bit_x86,.-.L_gcm_ghash_4bit_x86_begin 206c58cd0fd2cebb61b0e0f200e01562c542525ef46Catalin Ionita.type _mmx_gmult_4bit_inner,@function 207c58cd0fd2cebb61b0e0f200e01562c542525ef46Catalin Ionita.align 16 208c58cd0fd2cebb61b0e0f200e01562c542525ef46Catalin Ionita_mmx_gmult_4bit_inner: 209c58cd0fd2cebb61b0e0f200e01562c542525ef46Catalin Ionita xorl %ecx,%ecx 210c58cd0fd2cebb61b0e0f200e01562c542525ef46Catalin Ionita movl %ebx,%edx 211c58cd0fd2cebb61b0e0f200e01562c542525ef46Catalin Ionita movb %dl,%cl 212c58cd0fd2cebb61b0e0f200e01562c542525ef46Catalin Ionita shlb $4,%cl 213c58cd0fd2cebb61b0e0f200e01562c542525ef46Catalin Ionita andl $240,%edx 214c58cd0fd2cebb61b0e0f200e01562c542525ef46Catalin Ionita movq 8(%esi,%ecx,1),%mm0 215c58cd0fd2cebb61b0e0f200e01562c542525ef46Catalin Ionita movq (%esi,%ecx,1),%mm1 216c58cd0fd2cebb61b0e0f200e01562c542525ef46Catalin Ionita movd %mm0,%ebp 217c58cd0fd2cebb61b0e0f200e01562c542525ef46Catalin Ionita psrlq $4,%mm0 218c58cd0fd2cebb61b0e0f200e01562c542525ef46Catalin Ionita movq %mm1,%mm2 219c58cd0fd2cebb61b0e0f200e01562c542525ef46Catalin Ionita psrlq $4,%mm1 220c58cd0fd2cebb61b0e0f200e01562c542525ef46Catalin Ionita pxor 8(%esi,%edx,1),%mm0 221c58cd0fd2cebb61b0e0f200e01562c542525ef46Catalin Ionita movb 14(%edi),%cl 222c58cd0fd2cebb61b0e0f200e01562c542525ef46Catalin Ionita psllq $60,%mm2 223c58cd0fd2cebb61b0e0f200e01562c542525ef46Catalin Ionita andl $15,%ebp 224c58cd0fd2cebb61b0e0f200e01562c542525ef46Catalin Ionita pxor (%esi,%edx,1),%mm1 225c58cd0fd2cebb61b0e0f200e01562c542525ef46Catalin Ionita movl %ecx,%edx 226c58cd0fd2cebb61b0e0f200e01562c542525ef46Catalin Ionita movd %mm0,%ebx 227c58cd0fd2cebb61b0e0f200e01562c542525ef46Catalin Ionita pxor %mm2,%mm0 228c58cd0fd2cebb61b0e0f200e01562c542525ef46Catalin Ionita shlb $4,%cl 229c58cd0fd2cebb61b0e0f200e01562c542525ef46Catalin Ionita psrlq $4,%mm0 230c58cd0fd2cebb61b0e0f200e01562c542525ef46Catalin Ionita movq %mm1,%mm2 231c58cd0fd2cebb61b0e0f200e01562c542525ef46Catalin Ionita psrlq $4,%mm1 232c58cd0fd2cebb61b0e0f200e01562c542525ef46Catalin Ionita pxor 8(%esi,%ecx,1),%mm0 233c58cd0fd2cebb61b0e0f200e01562c542525ef46Catalin Ionita psllq $60,%mm2 234c58cd0fd2cebb61b0e0f200e01562c542525ef46Catalin Ionita andl $240,%edx 235c58cd0fd2cebb61b0e0f200e01562c542525ef46Catalin Ionita pxor (%eax,%ebp,8),%mm1 236c58cd0fd2cebb61b0e0f200e01562c542525ef46Catalin Ionita andl $15,%ebx 237c58cd0fd2cebb61b0e0f200e01562c542525ef46Catalin Ionita pxor (%esi,%ecx,1),%mm1 238c58cd0fd2cebb61b0e0f200e01562c542525ef46Catalin Ionita movd %mm0,%ebp 239c58cd0fd2cebb61b0e0f200e01562c542525ef46Catalin Ionita pxor %mm2,%mm0 240c58cd0fd2cebb61b0e0f200e01562c542525ef46Catalin Ionita psrlq $4,%mm0 241c58cd0fd2cebb61b0e0f200e01562c542525ef46Catalin Ionita movq %mm1,%mm2 242c58cd0fd2cebb61b0e0f200e01562c542525ef46Catalin Ionita psrlq $4,%mm1 243c58cd0fd2cebb61b0e0f200e01562c542525ef46Catalin Ionita pxor 8(%esi,%edx,1),%mm0 244c58cd0fd2cebb61b0e0f200e01562c542525ef46Catalin Ionita movb 13(%edi),%cl 245c58cd0fd2cebb61b0e0f200e01562c542525ef46Catalin Ionita psllq $60,%mm2 246c58cd0fd2cebb61b0e0f200e01562c542525ef46Catalin Ionita pxor (%eax,%ebx,8),%mm1 247c58cd0fd2cebb61b0e0f200e01562c542525ef46Catalin Ionita andl $15,%ebp 248c58cd0fd2cebb61b0e0f200e01562c542525ef46Catalin Ionita pxor (%esi,%edx,1),%mm1 249c58cd0fd2cebb61b0e0f200e01562c542525ef46Catalin Ionita movl %ecx,%edx 250c58cd0fd2cebb61b0e0f200e01562c542525ef46Catalin Ionita movd %mm0,%ebx 251c58cd0fd2cebb61b0e0f200e01562c542525ef46Catalin Ionita pxor %mm2,%mm0 252c58cd0fd2cebb61b0e0f200e01562c542525ef46Catalin Ionita shlb $4,%cl 253c58cd0fd2cebb61b0e0f200e01562c542525ef46Catalin Ionita psrlq $4,%mm0 254c58cd0fd2cebb61b0e0f200e01562c542525ef46Catalin Ionita movq %mm1,%mm2 255c58cd0fd2cebb61b0e0f200e01562c542525ef46Catalin Ionita psrlq $4,%mm1 256c58cd0fd2cebb61b0e0f200e01562c542525ef46Catalin Ionita pxor 8(%esi,%ecx,1),%mm0 257c58cd0fd2cebb61b0e0f200e01562c542525ef46Catalin Ionita psllq $60,%mm2 258c58cd0fd2cebb61b0e0f200e01562c542525ef46Catalin Ionita andl $240,%edx 259c58cd0fd2cebb61b0e0f200e01562c542525ef46Catalin Ionita pxor (%eax,%ebp,8),%mm1 260c58cd0fd2cebb61b0e0f200e01562c542525ef46Catalin Ionita andl $15,%ebx 261c58cd0fd2cebb61b0e0f200e01562c542525ef46Catalin Ionita pxor (%esi,%ecx,1),%mm1 262c58cd0fd2cebb61b0e0f200e01562c542525ef46Catalin Ionita movd %mm0,%ebp 263c58cd0fd2cebb61b0e0f200e01562c542525ef46Catalin Ionita pxor %mm2,%mm0 264c58cd0fd2cebb61b0e0f200e01562c542525ef46Catalin Ionita psrlq $4,%mm0 265c58cd0fd2cebb61b0e0f200e01562c542525ef46Catalin Ionita movq %mm1,%mm2 266c58cd0fd2cebb61b0e0f200e01562c542525ef46Catalin Ionita psrlq $4,%mm1 267c58cd0fd2cebb61b0e0f200e01562c542525ef46Catalin Ionita pxor 8(%esi,%edx,1),%mm0 268c58cd0fd2cebb61b0e0f200e01562c542525ef46Catalin Ionita movb 12(%edi),%cl 269c58cd0fd2cebb61b0e0f200e01562c542525ef46Catalin Ionita psllq $60,%mm2 270c58cd0fd2cebb61b0e0f200e01562c542525ef46Catalin Ionita pxor (%eax,%ebx,8),%mm1 271c58cd0fd2cebb61b0e0f200e01562c542525ef46Catalin Ionita andl $15,%ebp 272c58cd0fd2cebb61b0e0f200e01562c542525ef46Catalin Ionita pxor (%esi,%edx,1),%mm1 273c58cd0fd2cebb61b0e0f200e01562c542525ef46Catalin Ionita movl %ecx,%edx 274c58cd0fd2cebb61b0e0f200e01562c542525ef46Catalin Ionita movd %mm0,%ebx 275c58cd0fd2cebb61b0e0f200e01562c542525ef46Catalin Ionita pxor %mm2,%mm0 276c58cd0fd2cebb61b0e0f200e01562c542525ef46Catalin Ionita shlb $4,%cl 277c58cd0fd2cebb61b0e0f200e01562c542525ef46Catalin Ionita psrlq $4,%mm0 278c58cd0fd2cebb61b0e0f200e01562c542525ef46Catalin Ionita movq %mm1,%mm2 279c58cd0fd2cebb61b0e0f200e01562c542525ef46Catalin Ionita psrlq $4,%mm1 280c58cd0fd2cebb61b0e0f200e01562c542525ef46Catalin Ionita pxor 8(%esi,%ecx,1),%mm0 281c58cd0fd2cebb61b0e0f200e01562c542525ef46Catalin Ionita psllq $60,%mm2 282c58cd0fd2cebb61b0e0f200e01562c542525ef46Catalin Ionita andl $240,%edx 283c58cd0fd2cebb61b0e0f200e01562c542525ef46Catalin Ionita pxor (%eax,%ebp,8),%mm1 284c58cd0fd2cebb61b0e0f200e01562c542525ef46Catalin Ionita andl $15,%ebx 285c58cd0fd2cebb61b0e0f200e01562c542525ef46Catalin Ionita pxor (%esi,%ecx,1),%mm1 286c58cd0fd2cebb61b0e0f200e01562c542525ef46Catalin Ionita movd %mm0,%ebp 287c58cd0fd2cebb61b0e0f200e01562c542525ef46Catalin Ionita pxor %mm2,%mm0 288c58cd0fd2cebb61b0e0f200e01562c542525ef46Catalin Ionita psrlq $4,%mm0 289c58cd0fd2cebb61b0e0f200e01562c542525ef46Catalin Ionita movq %mm1,%mm2 290c58cd0fd2cebb61b0e0f200e01562c542525ef46Catalin Ionita psrlq $4,%mm1 291c58cd0fd2cebb61b0e0f200e01562c542525ef46Catalin Ionita pxor 8(%esi,%edx,1),%mm0 292c58cd0fd2cebb61b0e0f200e01562c542525ef46Catalin Ionita movb 11(%edi),%cl 293c58cd0fd2cebb61b0e0f200e01562c542525ef46Catalin Ionita psllq $60,%mm2 294c58cd0fd2cebb61b0e0f200e01562c542525ef46Catalin Ionita pxor (%eax,%ebx,8),%mm1 295c58cd0fd2cebb61b0e0f200e01562c542525ef46Catalin Ionita andl $15,%ebp 296c58cd0fd2cebb61b0e0f200e01562c542525ef46Catalin Ionita pxor (%esi,%edx,1),%mm1 297c58cd0fd2cebb61b0e0f200e01562c542525ef46Catalin Ionita movl %ecx,%edx 298c58cd0fd2cebb61b0e0f200e01562c542525ef46Catalin Ionita movd %mm0,%ebx 299c58cd0fd2cebb61b0e0f200e01562c542525ef46Catalin Ionita pxor %mm2,%mm0 300c58cd0fd2cebb61b0e0f200e01562c542525ef46Catalin Ionita shlb $4,%cl 301c58cd0fd2cebb61b0e0f200e01562c542525ef46Catalin Ionita psrlq $4,%mm0 302c58cd0fd2cebb61b0e0f200e01562c542525ef46Catalin Ionita movq %mm1,%mm2 303c58cd0fd2cebb61b0e0f200e01562c542525ef46Catalin Ionita psrlq $4,%mm1 304c58cd0fd2cebb61b0e0f200e01562c542525ef46Catalin Ionita pxor 8(%esi,%ecx,1),%mm0 305c58cd0fd2cebb61b0e0f200e01562c542525ef46Catalin Ionita psllq $60,%mm2 306c58cd0fd2cebb61b0e0f200e01562c542525ef46Catalin Ionita andl $240,%edx 307c58cd0fd2cebb61b0e0f200e01562c542525ef46Catalin Ionita pxor (%eax,%ebp,8),%mm1 308c58cd0fd2cebb61b0e0f200e01562c542525ef46Catalin Ionita andl $15,%ebx 309c58cd0fd2cebb61b0e0f200e01562c542525ef46Catalin Ionita pxor (%esi,%ecx,1),%mm1 310c58cd0fd2cebb61b0e0f200e01562c542525ef46Catalin Ionita movd %mm0,%ebp 311c58cd0fd2cebb61b0e0f200e01562c542525ef46Catalin Ionita pxor %mm2,%mm0 312c58cd0fd2cebb61b0e0f200e01562c542525ef46Catalin Ionita psrlq $4,%mm0 313c58cd0fd2cebb61b0e0f200e01562c542525ef46Catalin Ionita movq %mm1,%mm2 314c58cd0fd2cebb61b0e0f200e01562c542525ef46Catalin Ionita psrlq $4,%mm1 315c58cd0fd2cebb61b0e0f200e01562c542525ef46Catalin Ionita pxor 8(%esi,%edx,1),%mm0 316c58cd0fd2cebb61b0e0f200e01562c542525ef46Catalin Ionita movb 10(%edi),%cl 317c58cd0fd2cebb61b0e0f200e01562c542525ef46Catalin Ionita psllq $60,%mm2 318c58cd0fd2cebb61b0e0f200e01562c542525ef46Catalin Ionita pxor (%eax,%ebx,8),%mm1 319c58cd0fd2cebb61b0e0f200e01562c542525ef46Catalin Ionita andl $15,%ebp 320c58cd0fd2cebb61b0e0f200e01562c542525ef46Catalin Ionita pxor (%esi,%edx,1),%mm1 321c58cd0fd2cebb61b0e0f200e01562c542525ef46Catalin Ionita movl %ecx,%edx 322c58cd0fd2cebb61b0e0f200e01562c542525ef46Catalin Ionita movd %mm0,%ebx 323c58cd0fd2cebb61b0e0f200e01562c542525ef46Catalin Ionita pxor %mm2,%mm0 324c58cd0fd2cebb61b0e0f200e01562c542525ef46Catalin Ionita shlb $4,%cl 325c58cd0fd2cebb61b0e0f200e01562c542525ef46Catalin Ionita psrlq $4,%mm0 326c58cd0fd2cebb61b0e0f200e01562c542525ef46Catalin Ionita movq %mm1,%mm2 327c58cd0fd2cebb61b0e0f200e01562c542525ef46Catalin Ionita psrlq $4,%mm1 328c58cd0fd2cebb61b0e0f200e01562c542525ef46Catalin Ionita pxor 8(%esi,%ecx,1),%mm0 329c58cd0fd2cebb61b0e0f200e01562c542525ef46Catalin Ionita psllq $60,%mm2 330c58cd0fd2cebb61b0e0f200e01562c542525ef46Catalin Ionita andl $240,%edx 331c58cd0fd2cebb61b0e0f200e01562c542525ef46Catalin Ionita pxor (%eax,%ebp,8),%mm1 332c58cd0fd2cebb61b0e0f200e01562c542525ef46Catalin Ionita andl $15,%ebx 333c58cd0fd2cebb61b0e0f200e01562c542525ef46Catalin Ionita pxor (%esi,%ecx,1),%mm1 334c58cd0fd2cebb61b0e0f200e01562c542525ef46Catalin Ionita movd %mm0,%ebp 335c58cd0fd2cebb61b0e0f200e01562c542525ef46Catalin Ionita pxor %mm2,%mm0 336c58cd0fd2cebb61b0e0f200e01562c542525ef46Catalin Ionita psrlq $4,%mm0 337c58cd0fd2cebb61b0e0f200e01562c542525ef46Catalin Ionita movq %mm1,%mm2 338c58cd0fd2cebb61b0e0f200e01562c542525ef46Catalin Ionita psrlq $4,%mm1 339c58cd0fd2cebb61b0e0f200e01562c542525ef46Catalin Ionita pxor 8(%esi,%edx,1),%mm0 340c58cd0fd2cebb61b0e0f200e01562c542525ef46Catalin Ionita movb 9(%edi),%cl 341c58cd0fd2cebb61b0e0f200e01562c542525ef46Catalin Ionita psllq $60,%mm2 342c58cd0fd2cebb61b0e0f200e01562c542525ef46Catalin Ionita pxor (%eax,%ebx,8),%mm1 343c58cd0fd2cebb61b0e0f200e01562c542525ef46Catalin Ionita andl $15,%ebp 344c58cd0fd2cebb61b0e0f200e01562c542525ef46Catalin Ionita pxor (%esi,%edx,1),%mm1 345c58cd0fd2cebb61b0e0f200e01562c542525ef46Catalin Ionita movl %ecx,%edx 346c58cd0fd2cebb61b0e0f200e01562c542525ef46Catalin Ionita movd %mm0,%ebx 347c58cd0fd2cebb61b0e0f200e01562c542525ef46Catalin Ionita pxor %mm2,%mm0 348c58cd0fd2cebb61b0e0f200e01562c542525ef46Catalin Ionita shlb $4,%cl 349c58cd0fd2cebb61b0e0f200e01562c542525ef46Catalin Ionita psrlq $4,%mm0 350c58cd0fd2cebb61b0e0f200e01562c542525ef46Catalin Ionita movq %mm1,%mm2 351c58cd0fd2cebb61b0e0f200e01562c542525ef46Catalin Ionita psrlq $4,%mm1 352c58cd0fd2cebb61b0e0f200e01562c542525ef46Catalin Ionita pxor 8(%esi,%ecx,1),%mm0 353c58cd0fd2cebb61b0e0f200e01562c542525ef46Catalin Ionita psllq $60,%mm2 354c58cd0fd2cebb61b0e0f200e01562c542525ef46Catalin Ionita andl $240,%edx 355c58cd0fd2cebb61b0e0f200e01562c542525ef46Catalin Ionita pxor (%eax,%ebp,8),%mm1 356c58cd0fd2cebb61b0e0f200e01562c542525ef46Catalin Ionita andl $15,%ebx 357c58cd0fd2cebb61b0e0f200e01562c542525ef46Catalin Ionita pxor (%esi,%ecx,1),%mm1 358c58cd0fd2cebb61b0e0f200e01562c542525ef46Catalin Ionita movd %mm0,%ebp 359c58cd0fd2cebb61b0e0f200e01562c542525ef46Catalin Ionita pxor %mm2,%mm0 360c58cd0fd2cebb61b0e0f200e01562c542525ef46Catalin Ionita psrlq $4,%mm0 361c58cd0fd2cebb61b0e0f200e01562c542525ef46Catalin Ionita movq %mm1,%mm2 362c58cd0fd2cebb61b0e0f200e01562c542525ef46Catalin Ionita psrlq $4,%mm1 363c58cd0fd2cebb61b0e0f200e01562c542525ef46Catalin Ionita pxor 8(%esi,%edx,1),%mm0 364c58cd0fd2cebb61b0e0f200e01562c542525ef46Catalin Ionita movb 8(%edi),%cl 365c58cd0fd2cebb61b0e0f200e01562c542525ef46Catalin Ionita psllq $60,%mm2 366c58cd0fd2cebb61b0e0f200e01562c542525ef46Catalin Ionita pxor (%eax,%ebx,8),%mm1 367c58cd0fd2cebb61b0e0f200e01562c542525ef46Catalin Ionita andl $15,%ebp 368c58cd0fd2cebb61b0e0f200e01562c542525ef46Catalin Ionita pxor (%esi,%edx,1),%mm1 369c58cd0fd2cebb61b0e0f200e01562c542525ef46Catalin Ionita movl %ecx,%edx 370c58cd0fd2cebb61b0e0f200e01562c542525ef46Catalin Ionita movd %mm0,%ebx 371c58cd0fd2cebb61b0e0f200e01562c542525ef46Catalin Ionita pxor %mm2,%mm0 372c58cd0fd2cebb61b0e0f200e01562c542525ef46Catalin Ionita shlb $4,%cl 373c58cd0fd2cebb61b0e0f200e01562c542525ef46Catalin Ionita psrlq $4,%mm0 374c58cd0fd2cebb61b0e0f200e01562c542525ef46Catalin Ionita movq %mm1,%mm2 375c58cd0fd2cebb61b0e0f200e01562c542525ef46Catalin Ionita psrlq $4,%mm1 376c58cd0fd2cebb61b0e0f200e01562c542525ef46Catalin Ionita pxor 8(%esi,%ecx,1),%mm0 377c58cd0fd2cebb61b0e0f200e01562c542525ef46Catalin Ionita psllq $60,%mm2 378c58cd0fd2cebb61b0e0f200e01562c542525ef46Catalin Ionita andl $240,%edx 379c58cd0fd2cebb61b0e0f200e01562c542525ef46Catalin Ionita pxor (%eax,%ebp,8),%mm1 380c58cd0fd2cebb61b0e0f200e01562c542525ef46Catalin Ionita andl $15,%ebx 381c58cd0fd2cebb61b0e0f200e01562c542525ef46Catalin Ionita pxor (%esi,%ecx,1),%mm1 382c58cd0fd2cebb61b0e0f200e01562c542525ef46Catalin Ionita movd %mm0,%ebp 383c58cd0fd2cebb61b0e0f200e01562c542525ef46Catalin Ionita pxor %mm2,%mm0 384c58cd0fd2cebb61b0e0f200e01562c542525ef46Catalin Ionita psrlq $4,%mm0 385c58cd0fd2cebb61b0e0f200e01562c542525ef46Catalin Ionita movq %mm1,%mm2 386c58cd0fd2cebb61b0e0f200e01562c542525ef46Catalin Ionita psrlq $4,%mm1 387c58cd0fd2cebb61b0e0f200e01562c542525ef46Catalin Ionita pxor 8(%esi,%edx,1),%mm0 388c58cd0fd2cebb61b0e0f200e01562c542525ef46Catalin Ionita movb 7(%edi),%cl 389c58cd0fd2cebb61b0e0f200e01562c542525ef46Catalin Ionita psllq $60,%mm2 390c58cd0fd2cebb61b0e0f200e01562c542525ef46Catalin Ionita pxor (%eax,%ebx,8),%mm1 391c58cd0fd2cebb61b0e0f200e01562c542525ef46Catalin Ionita andl $15,%ebp 392c58cd0fd2cebb61b0e0f200e01562c542525ef46Catalin Ionita pxor (%esi,%edx,1),%mm1 393c58cd0fd2cebb61b0e0f200e01562c542525ef46Catalin Ionita movl %ecx,%edx 394c58cd0fd2cebb61b0e0f200e01562c542525ef46Catalin Ionita movd %mm0,%ebx 395c58cd0fd2cebb61b0e0f200e01562c542525ef46Catalin Ionita pxor %mm2,%mm0 396c58cd0fd2cebb61b0e0f200e01562c542525ef46Catalin Ionita shlb $4,%cl 397c58cd0fd2cebb61b0e0f200e01562c542525ef46Catalin Ionita psrlq $4,%mm0 398c58cd0fd2cebb61b0e0f200e01562c542525ef46Catalin Ionita movq %mm1,%mm2 399c58cd0fd2cebb61b0e0f200e01562c542525ef46Catalin Ionita psrlq $4,%mm1 400c58cd0fd2cebb61b0e0f200e01562c542525ef46Catalin Ionita pxor 8(%esi,%ecx,1),%mm0 401c58cd0fd2cebb61b0e0f200e01562c542525ef46Catalin Ionita psllq $60,%mm2 402c58cd0fd2cebb61b0e0f200e01562c542525ef46Catalin Ionita andl $240,%edx 403c58cd0fd2cebb61b0e0f200e01562c542525ef46Catalin Ionita pxor (%eax,%ebp,8),%mm1 404c58cd0fd2cebb61b0e0f200e01562c542525ef46Catalin Ionita andl $15,%ebx 405c58cd0fd2cebb61b0e0f200e01562c542525ef46Catalin Ionita pxor (%esi,%ecx,1),%mm1 406c58cd0fd2cebb61b0e0f200e01562c542525ef46Catalin Ionita movd %mm0,%ebp 407c58cd0fd2cebb61b0e0f200e01562c542525ef46Catalin Ionita pxor %mm2,%mm0 408c58cd0fd2cebb61b0e0f200e01562c542525ef46Catalin Ionita psrlq $4,%mm0 409c58cd0fd2cebb61b0e0f200e01562c542525ef46Catalin Ionita movq %mm1,%mm2 410c58cd0fd2cebb61b0e0f200e01562c542525ef46Catalin Ionita psrlq $4,%mm1 411c58cd0fd2cebb61b0e0f200e01562c542525ef46Catalin Ionita pxor 8(%esi,%edx,1),%mm0 412c58cd0fd2cebb61b0e0f200e01562c542525ef46Catalin Ionita movb 6(%edi),%cl 413c58cd0fd2cebb61b0e0f200e01562c542525ef46Catalin Ionita psllq $60,%mm2 414c58cd0fd2cebb61b0e0f200e01562c542525ef46Catalin Ionita pxor (%eax,%ebx,8),%mm1 415c58cd0fd2cebb61b0e0f200e01562c542525ef46Catalin Ionita andl $15,%ebp 416c58cd0fd2cebb61b0e0f200e01562c542525ef46Catalin Ionita pxor (%esi,%edx,1),%mm1 417c58cd0fd2cebb61b0e0f200e01562c542525ef46Catalin Ionita movl %ecx,%edx 418c58cd0fd2cebb61b0e0f200e01562c542525ef46Catalin Ionita movd %mm0,%ebx 419c58cd0fd2cebb61b0e0f200e01562c542525ef46Catalin Ionita pxor %mm2,%mm0 420c58cd0fd2cebb61b0e0f200e01562c542525ef46Catalin Ionita shlb $4,%cl 421c58cd0fd2cebb61b0e0f200e01562c542525ef46Catalin Ionita psrlq $4,%mm0 422c58cd0fd2cebb61b0e0f200e01562c542525ef46Catalin Ionita movq %mm1,%mm2 423c58cd0fd2cebb61b0e0f200e01562c542525ef46Catalin Ionita psrlq $4,%mm1 424c58cd0fd2cebb61b0e0f200e01562c542525ef46Catalin Ionita pxor 8(%esi,%ecx,1),%mm0 425c58cd0fd2cebb61b0e0f200e01562c542525ef46Catalin Ionita psllq $60,%mm2 426c58cd0fd2cebb61b0e0f200e01562c542525ef46Catalin Ionita andl $240,%edx 427c58cd0fd2cebb61b0e0f200e01562c542525ef46Catalin Ionita pxor (%eax,%ebp,8),%mm1 428c58cd0fd2cebb61b0e0f200e01562c542525ef46Catalin Ionita andl $15,%ebx 429c58cd0fd2cebb61b0e0f200e01562c542525ef46Catalin Ionita pxor (%esi,%ecx,1),%mm1 430c58cd0fd2cebb61b0e0f200e01562c542525ef46Catalin Ionita movd %mm0,%ebp 431c58cd0fd2cebb61b0e0f200e01562c542525ef46Catalin Ionita pxor %mm2,%mm0 432c58cd0fd2cebb61b0e0f200e01562c542525ef46Catalin Ionita psrlq $4,%mm0 433c58cd0fd2cebb61b0e0f200e01562c542525ef46Catalin Ionita movq %mm1,%mm2 434c58cd0fd2cebb61b0e0f200e01562c542525ef46Catalin Ionita psrlq $4,%mm1 435c58cd0fd2cebb61b0e0f200e01562c542525ef46Catalin Ionita pxor 8(%esi,%edx,1),%mm0 436c58cd0fd2cebb61b0e0f200e01562c542525ef46Catalin Ionita movb 5(%edi),%cl 437c58cd0fd2cebb61b0e0f200e01562c542525ef46Catalin Ionita psllq $60,%mm2 438c58cd0fd2cebb61b0e0f200e01562c542525ef46Catalin Ionita pxor (%eax,%ebx,8),%mm1 439c58cd0fd2cebb61b0e0f200e01562c542525ef46Catalin Ionita andl $15,%ebp 440c58cd0fd2cebb61b0e0f200e01562c542525ef46Catalin Ionita pxor (%esi,%edx,1),%mm1 441c58cd0fd2cebb61b0e0f200e01562c542525ef46Catalin Ionita movl %ecx,%edx 442c58cd0fd2cebb61b0e0f200e01562c542525ef46Catalin Ionita movd %mm0,%ebx 443c58cd0fd2cebb61b0e0f200e01562c542525ef46Catalin Ionita pxor %mm2,%mm0 444c58cd0fd2cebb61b0e0f200e01562c542525ef46Catalin Ionita shlb $4,%cl 445c58cd0fd2cebb61b0e0f200e01562c542525ef46Catalin Ionita psrlq $4,%mm0 446c58cd0fd2cebb61b0e0f200e01562c542525ef46Catalin Ionita movq %mm1,%mm2 447c58cd0fd2cebb61b0e0f200e01562c542525ef46Catalin Ionita psrlq $4,%mm1 448c58cd0fd2cebb61b0e0f200e01562c542525ef46Catalin Ionita pxor 8(%esi,%ecx,1),%mm0 449c58cd0fd2cebb61b0e0f200e01562c542525ef46Catalin Ionita psllq $60,%mm2 450c58cd0fd2cebb61b0e0f200e01562c542525ef46Catalin Ionita andl $240,%edx 451c58cd0fd2cebb61b0e0f200e01562c542525ef46Catalin Ionita pxor (%eax,%ebp,8),%mm1 452c58cd0fd2cebb61b0e0f200e01562c542525ef46Catalin Ionita andl $15,%ebx 453c58cd0fd2cebb61b0e0f200e01562c542525ef46Catalin Ionita pxor (%esi,%ecx,1),%mm1 454c58cd0fd2cebb61b0e0f200e01562c542525ef46Catalin Ionita movd %mm0,%ebp 455c58cd0fd2cebb61b0e0f200e01562c542525ef46Catalin Ionita pxor %mm2,%mm0 456c58cd0fd2cebb61b0e0f200e01562c542525ef46Catalin Ionita psrlq $4,%mm0 457c58cd0fd2cebb61b0e0f200e01562c542525ef46Catalin Ionita movq %mm1,%mm2 458c58cd0fd2cebb61b0e0f200e01562c542525ef46Catalin Ionita psrlq $4,%mm1 459c58cd0fd2cebb61b0e0f200e01562c542525ef46Catalin Ionita pxor 8(%esi,%edx,1),%mm0 460c58cd0fd2cebb61b0e0f200e01562c542525ef46Catalin Ionita movb 4(%edi),%cl 461c58cd0fd2cebb61b0e0f200e01562c542525ef46Catalin Ionita psllq $60,%mm2 462c58cd0fd2cebb61b0e0f200e01562c542525ef46Catalin Ionita pxor (%eax,%ebx,8),%mm1 463c58cd0fd2cebb61b0e0f200e01562c542525ef46Catalin Ionita andl $15,%ebp 464c58cd0fd2cebb61b0e0f200e01562c542525ef46Catalin Ionita pxor (%esi,%edx,1),%mm1 465c58cd0fd2cebb61b0e0f200e01562c542525ef46Catalin Ionita movl %ecx,%edx 466c58cd0fd2cebb61b0e0f200e01562c542525ef46Catalin Ionita movd %mm0,%ebx 467c58cd0fd2cebb61b0e0f200e01562c542525ef46Catalin Ionita pxor %mm2,%mm0 468c58cd0fd2cebb61b0e0f200e01562c542525ef46Catalin Ionita shlb $4,%cl 469c58cd0fd2cebb61b0e0f200e01562c542525ef46Catalin Ionita psrlq $4,%mm0 470c58cd0fd2cebb61b0e0f200e01562c542525ef46Catalin Ionita movq %mm1,%mm2 471c58cd0fd2cebb61b0e0f200e01562c542525ef46Catalin Ionita psrlq $4,%mm1 472c58cd0fd2cebb61b0e0f200e01562c542525ef46Catalin Ionita pxor 8(%esi,%ecx,1),%mm0 473c58cd0fd2cebb61b0e0f200e01562c542525ef46Catalin Ionita psllq $60,%mm2 474c58cd0fd2cebb61b0e0f200e01562c542525ef46Catalin Ionita andl $240,%edx 475c58cd0fd2cebb61b0e0f200e01562c542525ef46Catalin Ionita pxor (%eax,%ebp,8),%mm1 476c58cd0fd2cebb61b0e0f200e01562c542525ef46Catalin Ionita andl $15,%ebx 477c58cd0fd2cebb61b0e0f200e01562c542525ef46Catalin Ionita pxor (%esi,%ecx,1),%mm1 478c58cd0fd2cebb61b0e0f200e01562c542525ef46Catalin Ionita movd %mm0,%ebp 479c58cd0fd2cebb61b0e0f200e01562c542525ef46Catalin Ionita pxor %mm2,%mm0 480c58cd0fd2cebb61b0e0f200e01562c542525ef46Catalin Ionita psrlq $4,%mm0 481c58cd0fd2cebb61b0e0f200e01562c542525ef46Catalin Ionita movq %mm1,%mm2 482c58cd0fd2cebb61b0e0f200e01562c542525ef46Catalin Ionita psrlq $4,%mm1 483c58cd0fd2cebb61b0e0f200e01562c542525ef46Catalin Ionita pxor 8(%esi,%edx,1),%mm0 484c58cd0fd2cebb61b0e0f200e01562c542525ef46Catalin Ionita movb 3(%edi),%cl 485c58cd0fd2cebb61b0e0f200e01562c542525ef46Catalin Ionita psllq $60,%mm2 486c58cd0fd2cebb61b0e0f200e01562c542525ef46Catalin Ionita pxor (%eax,%ebx,8),%mm1 487c58cd0fd2cebb61b0e0f200e01562c542525ef46Catalin Ionita andl $15,%ebp 488c58cd0fd2cebb61b0e0f200e01562c542525ef46Catalin Ionita pxor (%esi,%edx,1),%mm1 489c58cd0fd2cebb61b0e0f200e01562c542525ef46Catalin Ionita movl %ecx,%edx 490c58cd0fd2cebb61b0e0f200e01562c542525ef46Catalin Ionita movd %mm0,%ebx 491c58cd0fd2cebb61b0e0f200e01562c542525ef46Catalin Ionita pxor %mm2,%mm0 492c58cd0fd2cebb61b0e0f200e01562c542525ef46Catalin Ionita shlb $4,%cl 493c58cd0fd2cebb61b0e0f200e01562c542525ef46Catalin Ionita psrlq $4,%mm0 494c58cd0fd2cebb61b0e0f200e01562c542525ef46Catalin Ionita movq %mm1,%mm2 495c58cd0fd2cebb61b0e0f200e01562c542525ef46Catalin Ionita psrlq $4,%mm1 496c58cd0fd2cebb61b0e0f200e01562c542525ef46Catalin Ionita pxor 8(%esi,%ecx,1),%mm0 497c58cd0fd2cebb61b0e0f200e01562c542525ef46Catalin Ionita psllq $60,%mm2 498c58cd0fd2cebb61b0e0f200e01562c542525ef46Catalin Ionita andl $240,%edx 499c58cd0fd2cebb61b0e0f200e01562c542525ef46Catalin Ionita pxor (%eax,%ebp,8),%mm1 500c58cd0fd2cebb61b0e0f200e01562c542525ef46Catalin Ionita andl $15,%ebx 501c58cd0fd2cebb61b0e0f200e01562c542525ef46Catalin Ionita pxor (%esi,%ecx,1),%mm1 502c58cd0fd2cebb61b0e0f200e01562c542525ef46Catalin Ionita movd %mm0,%ebp 503c58cd0fd2cebb61b0e0f200e01562c542525ef46Catalin Ionita pxor %mm2,%mm0 504c58cd0fd2cebb61b0e0f200e01562c542525ef46Catalin Ionita psrlq $4,%mm0 505c58cd0fd2cebb61b0e0f200e01562c542525ef46Catalin Ionita movq %mm1,%mm2 506c58cd0fd2cebb61b0e0f200e01562c542525ef46Catalin Ionita psrlq $4,%mm1 507c58cd0fd2cebb61b0e0f200e01562c542525ef46Catalin Ionita pxor 8(%esi,%edx,1),%mm0 508c58cd0fd2cebb61b0e0f200e01562c542525ef46Catalin Ionita movb 2(%edi),%cl 509c58cd0fd2cebb61b0e0f200e01562c542525ef46Catalin Ionita psllq $60,%mm2 510c58cd0fd2cebb61b0e0f200e01562c542525ef46Catalin Ionita pxor (%eax,%ebx,8),%mm1 511c58cd0fd2cebb61b0e0f200e01562c542525ef46Catalin Ionita andl $15,%ebp 512c58cd0fd2cebb61b0e0f200e01562c542525ef46Catalin Ionita pxor (%esi,%edx,1),%mm1 513c58cd0fd2cebb61b0e0f200e01562c542525ef46Catalin Ionita movl %ecx,%edx 514c58cd0fd2cebb61b0e0f200e01562c542525ef46Catalin Ionita movd %mm0,%ebx 515c58cd0fd2cebb61b0e0f200e01562c542525ef46Catalin Ionita pxor %mm2,%mm0 516c58cd0fd2cebb61b0e0f200e01562c542525ef46Catalin Ionita shlb $4,%cl 517c58cd0fd2cebb61b0e0f200e01562c542525ef46Catalin Ionita psrlq $4,%mm0 518c58cd0fd2cebb61b0e0f200e01562c542525ef46Catalin Ionita movq %mm1,%mm2 519c58cd0fd2cebb61b0e0f200e01562c542525ef46Catalin Ionita psrlq $4,%mm1 520c58cd0fd2cebb61b0e0f200e01562c542525ef46Catalin Ionita pxor 8(%esi,%ecx,1),%mm0 521c58cd0fd2cebb61b0e0f200e01562c542525ef46Catalin Ionita psllq $60,%mm2 522c58cd0fd2cebb61b0e0f200e01562c542525ef46Catalin Ionita andl $240,%edx 523c58cd0fd2cebb61b0e0f200e01562c542525ef46Catalin Ionita pxor (%eax,%ebp,8),%mm1 524c58cd0fd2cebb61b0e0f200e01562c542525ef46Catalin Ionita andl $15,%ebx 525c58cd0fd2cebb61b0e0f200e01562c542525ef46Catalin Ionita pxor (%esi,%ecx,1),%mm1 526c58cd0fd2cebb61b0e0f200e01562c542525ef46Catalin Ionita movd %mm0,%ebp 527c58cd0fd2cebb61b0e0f200e01562c542525ef46Catalin Ionita pxor %mm2,%mm0 528c58cd0fd2cebb61b0e0f200e01562c542525ef46Catalin Ionita psrlq $4,%mm0 529c58cd0fd2cebb61b0e0f200e01562c542525ef46Catalin Ionita movq %mm1,%mm2 530c58cd0fd2cebb61b0e0f200e01562c542525ef46Catalin Ionita psrlq $4,%mm1 531c58cd0fd2cebb61b0e0f200e01562c542525ef46Catalin Ionita pxor 8(%esi,%edx,1),%mm0 532c58cd0fd2cebb61b0e0f200e01562c542525ef46Catalin Ionita movb 1(%edi),%cl 533c58cd0fd2cebb61b0e0f200e01562c542525ef46Catalin Ionita psllq $60,%mm2 534c58cd0fd2cebb61b0e0f200e01562c542525ef46Catalin Ionita pxor (%eax,%ebx,8),%mm1 535c58cd0fd2cebb61b0e0f200e01562c542525ef46Catalin Ionita andl $15,%ebp 536c58cd0fd2cebb61b0e0f200e01562c542525ef46Catalin Ionita pxor (%esi,%edx,1),%mm1 537c58cd0fd2cebb61b0e0f200e01562c542525ef46Catalin Ionita movl %ecx,%edx 538c58cd0fd2cebb61b0e0f200e01562c542525ef46Catalin Ionita movd %mm0,%ebx 539c58cd0fd2cebb61b0e0f200e01562c542525ef46Catalin Ionita pxor %mm2,%mm0 540c58cd0fd2cebb61b0e0f200e01562c542525ef46Catalin Ionita shlb $4,%cl 541c58cd0fd2cebb61b0e0f200e01562c542525ef46Catalin Ionita psrlq $4,%mm0 542c58cd0fd2cebb61b0e0f200e01562c542525ef46Catalin Ionita movq %mm1,%mm2 543c58cd0fd2cebb61b0e0f200e01562c542525ef46Catalin Ionita psrlq $4,%mm1 544c58cd0fd2cebb61b0e0f200e01562c542525ef46Catalin Ionita pxor 8(%esi,%ecx,1),%mm0 545c58cd0fd2cebb61b0e0f200e01562c542525ef46Catalin Ionita psllq $60,%mm2 546c58cd0fd2cebb61b0e0f200e01562c542525ef46Catalin Ionita andl $240,%edx 547c58cd0fd2cebb61b0e0f200e01562c542525ef46Catalin Ionita pxor (%eax,%ebp,8),%mm1 548c58cd0fd2cebb61b0e0f200e01562c542525ef46Catalin Ionita andl $15,%ebx 549c58cd0fd2cebb61b0e0f200e01562c542525ef46Catalin Ionita pxor (%esi,%ecx,1),%mm1 550c58cd0fd2cebb61b0e0f200e01562c542525ef46Catalin Ionita movd %mm0,%ebp 551c58cd0fd2cebb61b0e0f200e01562c542525ef46Catalin Ionita pxor %mm2,%mm0 552c58cd0fd2cebb61b0e0f200e01562c542525ef46Catalin Ionita psrlq $4,%mm0 553c58cd0fd2cebb61b0e0f200e01562c542525ef46Catalin Ionita movq %mm1,%mm2 554c58cd0fd2cebb61b0e0f200e01562c542525ef46Catalin Ionita psrlq $4,%mm1 555c58cd0fd2cebb61b0e0f200e01562c542525ef46Catalin Ionita pxor 8(%esi,%edx,1),%mm0 556c58cd0fd2cebb61b0e0f200e01562c542525ef46Catalin Ionita movb (%edi),%cl 557c58cd0fd2cebb61b0e0f200e01562c542525ef46Catalin Ionita psllq $60,%mm2 558c58cd0fd2cebb61b0e0f200e01562c542525ef46Catalin Ionita pxor (%eax,%ebx,8),%mm1 559c58cd0fd2cebb61b0e0f200e01562c542525ef46Catalin Ionita andl $15,%ebp 560c58cd0fd2cebb61b0e0f200e01562c542525ef46Catalin Ionita pxor (%esi,%edx,1),%mm1 561c58cd0fd2cebb61b0e0f200e01562c542525ef46Catalin Ionita movl %ecx,%edx 562c58cd0fd2cebb61b0e0f200e01562c542525ef46Catalin Ionita movd %mm0,%ebx 563c58cd0fd2cebb61b0e0f200e01562c542525ef46Catalin Ionita pxor %mm2,%mm0 564c58cd0fd2cebb61b0e0f200e01562c542525ef46Catalin Ionita shlb $4,%cl 565c58cd0fd2cebb61b0e0f200e01562c542525ef46Catalin Ionita psrlq $4,%mm0 566c58cd0fd2cebb61b0e0f200e01562c542525ef46Catalin Ionita movq %mm1,%mm2 567c58cd0fd2cebb61b0e0f200e01562c542525ef46Catalin Ionita psrlq $4,%mm1 568c58cd0fd2cebb61b0e0f200e01562c542525ef46Catalin Ionita pxor 8(%esi,%ecx,1),%mm0 569c58cd0fd2cebb61b0e0f200e01562c542525ef46Catalin Ionita psllq $60,%mm2 570c58cd0fd2cebb61b0e0f200e01562c542525ef46Catalin Ionita andl $240,%edx 571c58cd0fd2cebb61b0e0f200e01562c542525ef46Catalin Ionita pxor (%eax,%ebp,8),%mm1 572c58cd0fd2cebb61b0e0f200e01562c542525ef46Catalin Ionita andl $15,%ebx 573c58cd0fd2cebb61b0e0f200e01562c542525ef46Catalin Ionita pxor (%esi,%ecx,1),%mm1 574c58cd0fd2cebb61b0e0f200e01562c542525ef46Catalin Ionita movd %mm0,%ebp 575c58cd0fd2cebb61b0e0f200e01562c542525ef46Catalin Ionita pxor %mm2,%mm0 576c58cd0fd2cebb61b0e0f200e01562c542525ef46Catalin Ionita psrlq $4,%mm0 577c58cd0fd2cebb61b0e0f200e01562c542525ef46Catalin Ionita movq %mm1,%mm2 578c58cd0fd2cebb61b0e0f200e01562c542525ef46Catalin Ionita psrlq $4,%mm1 579c58cd0fd2cebb61b0e0f200e01562c542525ef46Catalin Ionita pxor 8(%esi,%edx,1),%mm0 580c58cd0fd2cebb61b0e0f200e01562c542525ef46Catalin Ionita psllq $60,%mm2 581c58cd0fd2cebb61b0e0f200e01562c542525ef46Catalin Ionita pxor (%eax,%ebx,8),%mm1 582c58cd0fd2cebb61b0e0f200e01562c542525ef46Catalin Ionita andl $15,%ebp 583c58cd0fd2cebb61b0e0f200e01562c542525ef46Catalin Ionita pxor (%esi,%edx,1),%mm1 584c58cd0fd2cebb61b0e0f200e01562c542525ef46Catalin Ionita movd %mm0,%ebx 585c58cd0fd2cebb61b0e0f200e01562c542525ef46Catalin Ionita pxor %mm2,%mm0 586c58cd0fd2cebb61b0e0f200e01562c542525ef46Catalin Ionita movl 4(%eax,%ebp,8),%edi 587c58cd0fd2cebb61b0e0f200e01562c542525ef46Catalin Ionita psrlq $32,%mm0 588c58cd0fd2cebb61b0e0f200e01562c542525ef46Catalin Ionita movd %mm1,%edx 589c58cd0fd2cebb61b0e0f200e01562c542525ef46Catalin Ionita psrlq $32,%mm1 590c58cd0fd2cebb61b0e0f200e01562c542525ef46Catalin Ionita movd %mm0,%ecx 591c58cd0fd2cebb61b0e0f200e01562c542525ef46Catalin Ionita movd %mm1,%ebp 592c58cd0fd2cebb61b0e0f200e01562c542525ef46Catalin Ionita shll $4,%edi 593c58cd0fd2cebb61b0e0f200e01562c542525ef46Catalin Ionita bswap %ebx 594c58cd0fd2cebb61b0e0f200e01562c542525ef46Catalin Ionita bswap %edx 595c58cd0fd2cebb61b0e0f200e01562c542525ef46Catalin Ionita bswap %ecx 596c58cd0fd2cebb61b0e0f200e01562c542525ef46Catalin Ionita xorl %edi,%ebp 597c58cd0fd2cebb61b0e0f200e01562c542525ef46Catalin Ionita bswap %ebp 598c58cd0fd2cebb61b0e0f200e01562c542525ef46Catalin Ionita ret 599c58cd0fd2cebb61b0e0f200e01562c542525ef46Catalin Ionita.size _mmx_gmult_4bit_inner,.-_mmx_gmult_4bit_inner 600c58cd0fd2cebb61b0e0f200e01562c542525ef46Catalin Ionita.globl gcm_gmult_4bit_mmx 601c58cd0fd2cebb61b0e0f200e01562c542525ef46Catalin Ionita.type gcm_gmult_4bit_mmx,@function 602c58cd0fd2cebb61b0e0f200e01562c542525ef46Catalin Ionita.align 16 603c58cd0fd2cebb61b0e0f200e01562c542525ef46Catalin Ionitagcm_gmult_4bit_mmx: 604c58cd0fd2cebb61b0e0f200e01562c542525ef46Catalin Ionita.L_gcm_gmult_4bit_mmx_begin: 605c58cd0fd2cebb61b0e0f200e01562c542525ef46Catalin Ionita pushl %ebp 606c58cd0fd2cebb61b0e0f200e01562c542525ef46Catalin Ionita pushl %ebx 607c58cd0fd2cebb61b0e0f200e01562c542525ef46Catalin Ionita pushl %esi 608c58cd0fd2cebb61b0e0f200e01562c542525ef46Catalin Ionita pushl %edi 609c58cd0fd2cebb61b0e0f200e01562c542525ef46Catalin Ionita movl 20(%esp),%edi 610c58cd0fd2cebb61b0e0f200e01562c542525ef46Catalin Ionita movl 24(%esp),%esi 611c58cd0fd2cebb61b0e0f200e01562c542525ef46Catalin Ionita call .L005pic_point 612c58cd0fd2cebb61b0e0f200e01562c542525ef46Catalin Ionita.L005pic_point: 613c58cd0fd2cebb61b0e0f200e01562c542525ef46Catalin Ionita popl %eax 614c58cd0fd2cebb61b0e0f200e01562c542525ef46Catalin Ionita leal .Lrem_4bit-.L005pic_point(%eax),%eax 615c58cd0fd2cebb61b0e0f200e01562c542525ef46Catalin Ionita movzbl 15(%edi),%ebx 616c58cd0fd2cebb61b0e0f200e01562c542525ef46Catalin Ionita call _mmx_gmult_4bit_inner 617c58cd0fd2cebb61b0e0f200e01562c542525ef46Catalin Ionita movl 20(%esp),%edi 618c58cd0fd2cebb61b0e0f200e01562c542525ef46Catalin Ionita emms 619c58cd0fd2cebb61b0e0f200e01562c542525ef46Catalin Ionita movl %ebx,12(%edi) 620c58cd0fd2cebb61b0e0f200e01562c542525ef46Catalin Ionita movl %edx,4(%edi) 621c58cd0fd2cebb61b0e0f200e01562c542525ef46Catalin Ionita movl %ecx,8(%edi) 622c58cd0fd2cebb61b0e0f200e01562c542525ef46Catalin Ionita movl %ebp,(%edi) 623c58cd0fd2cebb61b0e0f200e01562c542525ef46Catalin Ionita popl %edi 624c58cd0fd2cebb61b0e0f200e01562c542525ef46Catalin Ionita popl %esi 625c58cd0fd2cebb61b0e0f200e01562c542525ef46Catalin Ionita popl %ebx 626c58cd0fd2cebb61b0e0f200e01562c542525ef46Catalin Ionita popl %ebp 627c58cd0fd2cebb61b0e0f200e01562c542525ef46Catalin Ionita ret 628c58cd0fd2cebb61b0e0f200e01562c542525ef46Catalin Ionita.size gcm_gmult_4bit_mmx,.-.L_gcm_gmult_4bit_mmx_begin 629c58cd0fd2cebb61b0e0f200e01562c542525ef46Catalin Ionita.globl gcm_ghash_4bit_mmx 630c58cd0fd2cebb61b0e0f200e01562c542525ef46Catalin Ionita.type gcm_ghash_4bit_mmx,@function 631c58cd0fd2cebb61b0e0f200e01562c542525ef46Catalin Ionita.align 16 632c58cd0fd2cebb61b0e0f200e01562c542525ef46Catalin Ionitagcm_ghash_4bit_mmx: 633c58cd0fd2cebb61b0e0f200e01562c542525ef46Catalin Ionita.L_gcm_ghash_4bit_mmx_begin: 634c58cd0fd2cebb61b0e0f200e01562c542525ef46Catalin Ionita pushl %ebp 635c58cd0fd2cebb61b0e0f200e01562c542525ef46Catalin Ionita pushl %ebx 636c58cd0fd2cebb61b0e0f200e01562c542525ef46Catalin Ionita pushl %esi 637c58cd0fd2cebb61b0e0f200e01562c542525ef46Catalin Ionita pushl %edi 638c58cd0fd2cebb61b0e0f200e01562c542525ef46Catalin Ionita movl 20(%esp),%ebp 639c58cd0fd2cebb61b0e0f200e01562c542525ef46Catalin Ionita movl 24(%esp),%esi 640c58cd0fd2cebb61b0e0f200e01562c542525ef46Catalin Ionita movl 28(%esp),%edi 641c58cd0fd2cebb61b0e0f200e01562c542525ef46Catalin Ionita movl 32(%esp),%ecx 642c58cd0fd2cebb61b0e0f200e01562c542525ef46Catalin Ionita call .L006pic_point 643c58cd0fd2cebb61b0e0f200e01562c542525ef46Catalin Ionita.L006pic_point: 644c58cd0fd2cebb61b0e0f200e01562c542525ef46Catalin Ionita popl %eax 645c58cd0fd2cebb61b0e0f200e01562c542525ef46Catalin Ionita leal .Lrem_4bit-.L006pic_point(%eax),%eax 646c58cd0fd2cebb61b0e0f200e01562c542525ef46Catalin Ionita addl %edi,%ecx 647c58cd0fd2cebb61b0e0f200e01562c542525ef46Catalin Ionita movl %ecx,32(%esp) 648c58cd0fd2cebb61b0e0f200e01562c542525ef46Catalin Ionita subl $20,%esp 649c58cd0fd2cebb61b0e0f200e01562c542525ef46Catalin Ionita movl 12(%ebp),%ebx 650c58cd0fd2cebb61b0e0f200e01562c542525ef46Catalin Ionita movl 4(%ebp),%edx 651c58cd0fd2cebb61b0e0f200e01562c542525ef46Catalin Ionita movl 8(%ebp),%ecx 652c58cd0fd2cebb61b0e0f200e01562c542525ef46Catalin Ionita movl (%ebp),%ebp 653c58cd0fd2cebb61b0e0f200e01562c542525ef46Catalin Ionita jmp .L007mmx_outer_loop 654c58cd0fd2cebb61b0e0f200e01562c542525ef46Catalin Ionita.align 16 655c58cd0fd2cebb61b0e0f200e01562c542525ef46Catalin Ionita.L007mmx_outer_loop: 656c58cd0fd2cebb61b0e0f200e01562c542525ef46Catalin Ionita xorl 12(%edi),%ebx 657c58cd0fd2cebb61b0e0f200e01562c542525ef46Catalin Ionita xorl 4(%edi),%edx 658c58cd0fd2cebb61b0e0f200e01562c542525ef46Catalin Ionita xorl 8(%edi),%ecx 659c58cd0fd2cebb61b0e0f200e01562c542525ef46Catalin Ionita xorl (%edi),%ebp 660c58cd0fd2cebb61b0e0f200e01562c542525ef46Catalin Ionita movl %edi,48(%esp) 661c58cd0fd2cebb61b0e0f200e01562c542525ef46Catalin Ionita movl %ebx,12(%esp) 662c58cd0fd2cebb61b0e0f200e01562c542525ef46Catalin Ionita movl %edx,4(%esp) 663c58cd0fd2cebb61b0e0f200e01562c542525ef46Catalin Ionita movl %ecx,8(%esp) 664c58cd0fd2cebb61b0e0f200e01562c542525ef46Catalin Ionita movl %ebp,(%esp) 665c58cd0fd2cebb61b0e0f200e01562c542525ef46Catalin Ionita movl %esp,%edi 666c58cd0fd2cebb61b0e0f200e01562c542525ef46Catalin Ionita shrl $24,%ebx 667c58cd0fd2cebb61b0e0f200e01562c542525ef46Catalin Ionita call _mmx_gmult_4bit_inner 668c58cd0fd2cebb61b0e0f200e01562c542525ef46Catalin Ionita movl 48(%esp),%edi 669c58cd0fd2cebb61b0e0f200e01562c542525ef46Catalin Ionita leal 16(%edi),%edi 670c58cd0fd2cebb61b0e0f200e01562c542525ef46Catalin Ionita cmpl 52(%esp),%edi 671c58cd0fd2cebb61b0e0f200e01562c542525ef46Catalin Ionita jb .L007mmx_outer_loop 672c58cd0fd2cebb61b0e0f200e01562c542525ef46Catalin Ionita movl 40(%esp),%edi 673c58cd0fd2cebb61b0e0f200e01562c542525ef46Catalin Ionita emms 674c58cd0fd2cebb61b0e0f200e01562c542525ef46Catalin Ionita movl %ebx,12(%edi) 675c58cd0fd2cebb61b0e0f200e01562c542525ef46Catalin Ionita movl %edx,4(%edi) 676c58cd0fd2cebb61b0e0f200e01562c542525ef46Catalin Ionita movl %ecx,8(%edi) 677c58cd0fd2cebb61b0e0f200e01562c542525ef46Catalin Ionita movl %ebp,(%edi) 678c58cd0fd2cebb61b0e0f200e01562c542525ef46Catalin Ionita addl $20,%esp 679c58cd0fd2cebb61b0e0f200e01562c542525ef46Catalin Ionita popl %edi 680c58cd0fd2cebb61b0e0f200e01562c542525ef46Catalin Ionita popl %esi 681c58cd0fd2cebb61b0e0f200e01562c542525ef46Catalin Ionita popl %ebx 682c58cd0fd2cebb61b0e0f200e01562c542525ef46Catalin Ionita popl %ebp 683c58cd0fd2cebb61b0e0f200e01562c542525ef46Catalin Ionita ret 684c58cd0fd2cebb61b0e0f200e01562c542525ef46Catalin Ionita.size gcm_ghash_4bit_mmx,.-.L_gcm_ghash_4bit_mmx_begin 685c58cd0fd2cebb61b0e0f200e01562c542525ef46Catalin Ionita.align 64 686c58cd0fd2cebb61b0e0f200e01562c542525ef46Catalin Ionita.Lrem_4bit: 687c58cd0fd2cebb61b0e0f200e01562c542525ef46Catalin Ionita.long 0,0,0,29491200,0,58982400,0,38141952 688c58cd0fd2cebb61b0e0f200e01562c542525ef46Catalin Ionita.long 0,117964800,0,113901568,0,76283904,0,88997888 689c58cd0fd2cebb61b0e0f200e01562c542525ef46Catalin Ionita.long 0,235929600,0,265420800,0,227803136,0,206962688 690c58cd0fd2cebb61b0e0f200e01562c542525ef46Catalin Ionita.long 0,152567808,0,148504576,0,177995776,0,190709760 691c58cd0fd2cebb61b0e0f200e01562c542525ef46Catalin Ionita.align 64 692c58cd0fd2cebb61b0e0f200e01562c542525ef46Catalin Ionita.L008rem_8bit: 693c58cd0fd2cebb61b0e0f200e01562c542525ef46Catalin Ionita.value 0,450,900,582,1800,1738,1164,1358 694c58cd0fd2cebb61b0e0f200e01562c542525ef46Catalin Ionita.value 3600,4050,3476,3158,2328,2266,2716,2910 695c58cd0fd2cebb61b0e0f200e01562c542525ef46Catalin Ionita.value 7200,7650,8100,7782,6952,6890,6316,6510 696c58cd0fd2cebb61b0e0f200e01562c542525ef46Catalin Ionita.value 4656,5106,4532,4214,5432,5370,5820,6014 697c58cd0fd2cebb61b0e0f200e01562c542525ef46Catalin Ionita.value 14400,14722,15300,14854,16200,16010,15564,15630 698c58cd0fd2cebb61b0e0f200e01562c542525ef46Catalin Ionita.value 13904,14226,13780,13334,12632,12442,13020,13086 699c58cd0fd2cebb61b0e0f200e01562c542525ef46Catalin Ionita.value 9312,9634,10212,9766,9064,8874,8428,8494 700c58cd0fd2cebb61b0e0f200e01562c542525ef46Catalin Ionita.value 10864,11186,10740,10294,11640,11450,12028,12094 701c58cd0fd2cebb61b0e0f200e01562c542525ef46Catalin Ionita.value 28800,28994,29444,29382,30600,30282,29708,30158 702c58cd0fd2cebb61b0e0f200e01562c542525ef46Catalin Ionita.value 32400,32594,32020,31958,31128,30810,31260,31710 703c58cd0fd2cebb61b0e0f200e01562c542525ef46Catalin Ionita.value 27808,28002,28452,28390,27560,27242,26668,27118 704c58cd0fd2cebb61b0e0f200e01562c542525ef46Catalin Ionita.value 25264,25458,24884,24822,26040,25722,26172,26622 705c58cd0fd2cebb61b0e0f200e01562c542525ef46Catalin Ionita.value 18624,18690,19268,19078,20424,19978,19532,19854 706c58cd0fd2cebb61b0e0f200e01562c542525ef46Catalin Ionita.value 18128,18194,17748,17558,16856,16410,16988,17310 707c58cd0fd2cebb61b0e0f200e01562c542525ef46Catalin Ionita.value 21728,21794,22372,22182,21480,21034,20588,20910 708c58cd0fd2cebb61b0e0f200e01562c542525ef46Catalin Ionita.value 23280,23346,22900,22710,24056,23610,24188,24510 709c58cd0fd2cebb61b0e0f200e01562c542525ef46Catalin Ionita.value 57600,57538,57988,58182,58888,59338,58764,58446 710c58cd0fd2cebb61b0e0f200e01562c542525ef46Catalin Ionita.value 61200,61138,60564,60758,59416,59866,60316,59998 711c58cd0fd2cebb61b0e0f200e01562c542525ef46Catalin Ionita.value 64800,64738,65188,65382,64040,64490,63916,63598 712c58cd0fd2cebb61b0e0f200e01562c542525ef46Catalin Ionita.value 62256,62194,61620,61814,62520,62970,63420,63102 713c58cd0fd2cebb61b0e0f200e01562c542525ef46Catalin Ionita.value 55616,55426,56004,56070,56904,57226,56780,56334 714c58cd0fd2cebb61b0e0f200e01562c542525ef46Catalin Ionita.value 55120,54930,54484,54550,53336,53658,54236,53790 715c58cd0fd2cebb61b0e0f200e01562c542525ef46Catalin Ionita.value 50528,50338,50916,50982,49768,50090,49644,49198 716c58cd0fd2cebb61b0e0f200e01562c542525ef46Catalin Ionita.value 52080,51890,51444,51510,52344,52666,53244,52798 717c58cd0fd2cebb61b0e0f200e01562c542525ef46Catalin Ionita.value 37248,36930,37380,37830,38536,38730,38156,38094 718c58cd0fd2cebb61b0e0f200e01562c542525ef46Catalin Ionita.value 40848,40530,39956,40406,39064,39258,39708,39646 719c58cd0fd2cebb61b0e0f200e01562c542525ef46Catalin Ionita.value 36256,35938,36388,36838,35496,35690,35116,35054 720c58cd0fd2cebb61b0e0f200e01562c542525ef46Catalin Ionita.value 33712,33394,32820,33270,33976,34170,34620,34558 721c58cd0fd2cebb61b0e0f200e01562c542525ef46Catalin Ionita.value 43456,43010,43588,43910,44744,44810,44364,44174 722c58cd0fd2cebb61b0e0f200e01562c542525ef46Catalin Ionita.value 42960,42514,42068,42390,41176,41242,41820,41630 723c58cd0fd2cebb61b0e0f200e01562c542525ef46Catalin Ionita.value 46560,46114,46692,47014,45800,45866,45420,45230 724c58cd0fd2cebb61b0e0f200e01562c542525ef46Catalin Ionita.value 48112,47666,47220,47542,48376,48442,49020,48830 725c58cd0fd2cebb61b0e0f200e01562c542525ef46Catalin Ionita.byte 71,72,65,83,72,32,102,111,114,32,120,56,54,44,32,67 726c58cd0fd2cebb61b0e0f200e01562c542525ef46Catalin Ionita.byte 82,89,80,84,79,71,65,77,83,32,98,121,32,60,97,112 727c58cd0fd2cebb61b0e0f200e01562c542525ef46Catalin Ionita.byte 112,114,111,64,111,112,101,110,115,115,108,46,111,114,103,62 728c58cd0fd2cebb61b0e0f200e01562c542525ef46Catalin Ionita.byte 0 729