Home | History | Annotate | Download | only in fipsmodule
      1 #if defined(__x86_64__) && !defined(OPENSSL_NO_ASM)
      2 .text
      3 
      4 
      5 
      6 
      7 .globl	CRYPTO_rdrand
      8 .hidden CRYPTO_rdrand
      9 .type	CRYPTO_rdrand,@function
     10 .align	16
     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 .hidden CRYPTO_rdrand_multiple8_buf
     27 .type	CRYPTO_rdrand_multiple8_buf,@function
     28 .align	16
     29 CRYPTO_rdrand_multiple8_buf:
     30 	testq	%rsi,%rsi
     31 	jz	.Lout
     32 	movq	$8,%rdx
     33 .Lloop:
     34 
     35 
     36 .byte	0x48, 0x0f, 0xc7, 0xf1
     37 	jnc	.Lerr
     38 	movq	%rcx,0(%rdi)
     39 	addq	%rdx,%rdi
     40 	subq	%rdx,%rsi
     41 	jnz	.Lloop
     42 .Lout:
     43 	movq	$1,%rax
     44 	.byte	0xf3,0xc3
     45 .Lerr:
     46 	xorq	%rax,%rax
     47 	.byte	0xf3,0xc3
     48 #endif
     49