Home | History | Annotate | Download | only in rand
      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
     33 L$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
     42 L$out:
     43 	movq	$1,%rax
     44 	.byte	0xf3,0xc3
     45 L$err:
     46 	xorq	%rax,%rax
     47 	.byte	0xf3,0xc3
     48 #endif
     49