aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorMartin Willi <martin@revosec.ch>2013-01-04 16:34:56 +0100
committerMartin Willi <martin@revosec.ch>2013-01-11 10:45:14 +0100
commit2cd6c5115bc6d19e7303ab83a4dbacdb9135d05f (patch)
tree9497201b0f4f67413bfef127a800454390b8fd81
parent19ae23452aa7e9ad410f8a03f309b83df6e79227 (diff)
downloadstrongswan-2cd6c5115bc6d19e7303ab83a4dbacdb9135d05f.tar.bz2
strongswan-2cd6c5115bc6d19e7303ab83a4dbacdb9135d05f.tar.xz
Use raw opcodes for rdrand to build with older binutils
-rw-r--r--src/libstrongswan/plugins/rdrand/rdrand_rng.c12
1 files changed, 6 insertions, 6 deletions
diff --git a/src/libstrongswan/plugins/rdrand/rdrand_rng.c b/src/libstrongswan/plugins/rdrand/rdrand_rng.c
index 8c219b426..d032cbe31 100644
--- a/src/libstrongswan/plugins/rdrand/rdrand_rng.c
+++ b/src/libstrongswan/plugins/rdrand/rdrand_rng.c
@@ -61,9 +61,9 @@ static bool rdrand16(u_int16_t *out)
for (i = 0; i < MAX_TRIES; i++)
{
- asm("rdrand %0;"
+ asm(".byte 0x66;.byte 0x0f;.byte 0xc7;.byte 0xf0; " /* rdrand */
"setc %1;"
- : "=r"(*out), "=qm"(res));
+ : "=a"(*out), "=qm"(res));
if (res)
{
@@ -83,9 +83,9 @@ static bool rdrand32(u_int32_t *out)
for (i = 0; i < MAX_TRIES; i++)
{
- asm("rdrand %0;"
+ asm(".byte 0x0f;.byte 0xc7;.byte 0xf0;" /* rdrand */
"setc %1;"
- : "=r"(*out), "=qm"(res));
+ : "=a"(*out), "=qm"(res));
if (res)
{
@@ -106,9 +106,9 @@ static bool rdrand64(u_int64_t *out)
for (i = 0; i < MAX_TRIES; i++)
{
- asm("rdrand %0;"
+ asm(".byte 0x48;.byte 0x0f;.byte 0xc7;.byte 0xf0;" /* rdrand */
"setc %1;"
- : "=r"(*out), "=qm"(res));
+ : "=a"(*out), "=qm"(res));
if (res)
{