1#if defined(__x86_64__) 2.text 3 4 5 6 7.globl _CRYPTO_rdrand 8.private_extern _CRYPTO_rdrand 9 10.p2align 4 11_CRYPTO_rdrand: 12 xorq %rax,%rax 13 14 15.byte 0x48, 0x0f, 0xc7, 0xf1 16 17 adcq %rax,%rax 18 movq %rcx,0(%rdi) 19 .byte 0xf3,0xc3 20 21 22 23 24 25.globl _CRYPTO_rdrand_multiple8_buf 26.private_extern _CRYPTO_rdrand_multiple8_buf 27 28.p2align 4 29_CRYPTO_rdrand_multiple8_buf: 30 testq %rsi,%rsi 31 jz L$out 32 movq $8,%rdx 33L$loop: 34 35 36.byte 0x48, 0x0f, 0xc7, 0xf1 37 jnc L$err 38 movq %rcx,0(%rdi) 39 addq %rdx,%rdi 40 subq %rdx,%rsi 41 jnz L$loop 42L$out: 43 movq $1,%rax 44 .byte 0xf3,0xc3 45L$err: 46 xorq %rax,%rax 47 .byte 0xf3,0xc3 48#endif 49