120777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner 220777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner.hidden OPENSSL_cpuid_setup 320777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner.section .init 420777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner call OPENSSL_cpuid_setup 520777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner 620777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner.hidden OPENSSL_ia32cap_P 720777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner.comm OPENSSL_ia32cap_P,8,4 820777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner 920777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner.text 1020777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner 1120777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner.globl OPENSSL_atomic_add 1220777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner.type OPENSSL_atomic_add,@function 1320777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner.align 16 1420777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' TurnerOPENSSL_atomic_add: 1520777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner movl (%rdi),%eax 1620777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner.Lspin: leaq (%rsi,%rax,1),%r8 1720777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner.byte 0xf0 1820777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner cmpxchgl %r8d,(%rdi) 1920777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner jne .Lspin 2020777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner movl %r8d,%eax 2120777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner.byte 0x48,0x98 2220777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner .byte 0xf3,0xc3 2320777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner.size OPENSSL_atomic_add,.-OPENSSL_atomic_add 2420777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner 2520777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner.globl OPENSSL_rdtsc 2620777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner.type OPENSSL_rdtsc,@function 2720777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner.align 16 2820777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' TurnerOPENSSL_rdtsc: 2920777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner rdtsc 3020777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner shlq $32,%rdx 3120777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner orq %rdx,%rax 3220777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner .byte 0xf3,0xc3 3320777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner.size OPENSSL_rdtsc,.-OPENSSL_rdtsc 3420777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner 3520777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner.globl OPENSSL_ia32_cpuid 3620777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner.type OPENSSL_ia32_cpuid,@function 3720777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner.align 16 3820777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' TurnerOPENSSL_ia32_cpuid: 3920777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner movq %rbx,%r8 4020777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner 4120777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner xorl %eax,%eax 4220777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner cpuid 4320777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner movl %eax,%r11d 4420777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner 4520777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner xorl %eax,%eax 4620777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner cmpl $1970169159,%ebx 4720777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner setne %al 4820777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner movl %eax,%r9d 4920777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner cmpl $1231384169,%edx 5020777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner setne %al 5120777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner orl %eax,%r9d 5220777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner cmpl $1818588270,%ecx 5320777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner setne %al 5420777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner orl %eax,%r9d 5520777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner jz .Lintel 5620777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner 5720777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner cmpl $1752462657,%ebx 5820777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner setne %al 5920777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner movl %eax,%r10d 6020777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner cmpl $1769238117,%edx 6120777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner setne %al 6220777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner orl %eax,%r10d 6320777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner cmpl $1145913699,%ecx 6420777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner setne %al 6520777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner orl %eax,%r10d 6620777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner jnz .Lintel 6720777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner 6820777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner 6920777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner movl $2147483648,%eax 7020777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner cpuid 7120777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner cmpl $2147483649,%eax 7220777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner jb .Lintel 7320777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner movl %eax,%r10d 7420777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner movl $2147483649,%eax 7520777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner cpuid 7620777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner orl %ecx,%r9d 7720777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner andl $2049,%r9d 7820777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner 7920777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner cmpl $2147483656,%r10d 8020777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner jb .Lintel 8120777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner 8220777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner movl $2147483656,%eax 8320777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner cpuid 8420777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner movzbq %cl,%r10 8520777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner incq %r10 8620777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner 8720777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner movl $1,%eax 8820777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner cpuid 8920777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner btl $28,%edx 9020777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner jnc .Lgeneric 9120777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner shrl $16,%ebx 9220777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner cmpb %r10b,%bl 9320777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner ja .Lgeneric 9420777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner andl $4026531839,%edx 9520777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner jmp .Lgeneric 9620777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner 9720777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner.Lintel: 9820777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner cmpl $4,%r11d 9920777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner movl $-1,%r10d 10020777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner jb .Lnocacheinfo 10120777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner 10220777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner movl $4,%eax 10320777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner movl $0,%ecx 10420777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner cpuid 10520777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner movl %eax,%r10d 10620777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner shrl $14,%r10d 10720777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner andl $4095,%r10d 10820777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner 10920777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner.Lnocacheinfo: 11020777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner movl $1,%eax 11120777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner cpuid 11220777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner andl $3220176895,%edx 11320777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner cmpl $0,%r9d 11420777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner jne .Lnotintel 11520777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner orl $1073741824,%edx 11620777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner andb $15,%ah 11720777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner cmpb $15,%ah 11820777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner jne .Lnotintel 11920777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner orl $1048576,%edx 12020777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner.Lnotintel: 12120777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner btl $28,%edx 12220777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner jnc .Lgeneric 12320777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner andl $4026531839,%edx 12420777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner cmpl $0,%r10d 12520777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner je .Lgeneric 12620777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner 12720777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner orl $268435456,%edx 12820777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner shrl $16,%ebx 12920777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner cmpb $1,%bl 13020777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner ja .Lgeneric 13120777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner andl $4026531839,%edx 13220777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner.Lgeneric: 13320777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner andl $2048,%r9d 13420777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner andl $4294965247,%ecx 13520777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner orl %ecx,%r9d 13620777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner 13720777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner movl %edx,%r10d 13820777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner btl $27,%r9d 13920777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner jnc .Lclear_avx 14020777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner xorl %ecx,%ecx 14120777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner.byte 0x0f,0x01,0xd0 14220777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner andl $6,%eax 14320777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner cmpl $6,%eax 14420777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner je .Ldone 14520777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner.Lclear_avx: 14620777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner movl $4026525695,%eax 14720777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner andl %eax,%r9d 14820777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner.Ldone: 14920777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner shlq $32,%r9 15020777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner movl %r10d,%eax 15120777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner movq %r8,%rbx 15220777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner orq %r9,%rax 15320777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner .byte 0xf3,0xc3 15420777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner.size OPENSSL_ia32_cpuid,.-OPENSSL_ia32_cpuid 15520777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner 15620777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner.globl OPENSSL_cleanse 15720777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner.type OPENSSL_cleanse,@function 15820777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner.align 16 15920777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' TurnerOPENSSL_cleanse: 16020777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner xorq %rax,%rax 16120777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner cmpq $15,%rsi 16220777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner jae .Lot 16320777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner cmpq $0,%rsi 16420777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner je .Lret 16520777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner.Little: 16620777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner movb %al,(%rdi) 16720777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner subq $1,%rsi 16820777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner leaq 1(%rdi),%rdi 16920777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner jnz .Little 17020777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner.Lret: 17120777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner .byte 0xf3,0xc3 17220777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner.align 16 17320777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner.Lot: 17420777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner testq $7,%rdi 17520777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner jz .Laligned 17620777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner movb %al,(%rdi) 17720777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner leaq -1(%rsi),%rsi 17820777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner leaq 1(%rdi),%rdi 17920777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner jmp .Lot 18020777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner.Laligned: 18120777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner movq %rax,(%rdi) 18220777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner leaq -8(%rsi),%rsi 18320777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner testq $-8,%rsi 18420777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner leaq 8(%rdi),%rdi 18520777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner jnz .Laligned 18620777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner cmpq $0,%rsi 18720777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner jne .Little 18820777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner .byte 0xf3,0xc3 18920777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner.size OPENSSL_cleanse,.-OPENSSL_cleanse 19020777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner.globl OPENSSL_wipe_cpu 19120777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner.type OPENSSL_wipe_cpu,@function 19220777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner.align 16 19320777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' TurnerOPENSSL_wipe_cpu: 19420777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner pxor %xmm0,%xmm0 19520777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner pxor %xmm1,%xmm1 19620777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner pxor %xmm2,%xmm2 19720777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner pxor %xmm3,%xmm3 19820777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner pxor %xmm4,%xmm4 19920777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner pxor %xmm5,%xmm5 20020777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner pxor %xmm6,%xmm6 20120777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner pxor %xmm7,%xmm7 20220777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner pxor %xmm8,%xmm8 20320777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner pxor %xmm9,%xmm9 20420777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner pxor %xmm10,%xmm10 20520777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner pxor %xmm11,%xmm11 20620777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner pxor %xmm12,%xmm12 20720777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner pxor %xmm13,%xmm13 20820777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner pxor %xmm14,%xmm14 20920777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner pxor %xmm15,%xmm15 21020777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner xorq %rcx,%rcx 21120777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner xorq %rdx,%rdx 21220777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner xorq %rsi,%rsi 21320777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner xorq %rdi,%rdi 21420777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner xorq %r8,%r8 21520777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner xorq %r9,%r9 21620777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner xorq %r10,%r10 21720777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner xorq %r11,%r11 21820777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner leaq 8(%rsp),%rax 21920777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner .byte 0xf3,0xc3 22020777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner.size OPENSSL_wipe_cpu,.-OPENSSL_wipe_cpu 22120777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner.globl OPENSSL_ia32_rdrand 22220777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner.type OPENSSL_ia32_rdrand,@function 22320777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner.align 16 22420777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' TurnerOPENSSL_ia32_rdrand: 22520777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner movl $8,%ecx 22620777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner.Loop_rdrand: 22720777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner.byte 72,15,199,240 22820777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner jc .Lbreak_rdrand 22920777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner loop .Loop_rdrand 23020777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner.Lbreak_rdrand: 23120777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner cmpq $0,%rax 23220777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner cmoveq %rcx,%rax 23320777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner .byte 0xf3,0xc3 23420777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner.size OPENSSL_ia32_rdrand,.-OPENSSL_ia32_rdrand 235