Now our binutils's assembler supports the Intel Random Number Generator

extensions, we can change the .byte directives in sys/dev/random/ivy.c
to plain 'rdrand' mnemonics.  This already worked for clang users, but
now it will also work for gcc users.

Approved by:	re (kib)
Approved by:	so (des)
MFC after:	1 week
This commit is contained in:
Dimitry Andric 2013-10-08 17:26:28 +00:00
parent 4a06a0fe79
commit e7ad54b2b4
Notes: svn2git 2020-12-20 02:59:44 +00:00
svn path=/head/; revision=256157

View File

@ -68,12 +68,12 @@ ivy_rng_store(long *tmp)
__asm __volatile(
#ifdef __amd64__
".byte\t0x48,0x0f,0xc7,0xf0\n\t" /* rdrand %rax */
"rdrand\t%%rax\n\t"
"jnc\t1f\n\t"
"movq\t%%rax,%1\n\t"
"movl\t$8,%%eax\n"
#else /* i386 */
".byte\t0x0f,0xc7,0xf0\n\t" /* rdrand %eax */
"rdrand\t%%eax\n\t"
"jnc\t1f\n\t"
"movl\t%%eax,%1\n\t"
"movl\t$4,%%eax\n"