Markus Teich wrote:

> vex amd64->IR: unhandled instruction bytes: 0x48 0xF 0xC7 0xF0 0x72 0x4 0xFF 
> 0xC9
> vex amd64->IR:   REX=1 REX.W=1 REX.R=0 REX.X=0 REX.B=0
> vex amd64->IR:   VEX=0 VEX.L=0 VEX.nVVVV=0x0 ESC=0F
> vex amd64->IR:   PFX.66=0 PFX.F2=0 PFX.F3=0
> ==10769== valgrind: Unrecognised instruction at address 0x60082d3.
> ==10769==    at 0x60082D3: poll_drng.isra.0 (in 
> /usr/lib64/libgcrypt.so.20.1.3)

> I have a x86_64 gentoo system with valgrind-3.11.0 and libgcrypt-1.7.3 
> installed.
> The CFLAGS from my make.conf are:
>
> CFLAGS="-O2 -pipe"
> CFLAGS="${CFLAGS} -march=core-avx2 -mtune=core-avx2 -mcx16 -msahf -mmovbe 
> -maes"
> CFLAGS="${CFLAGS} -mpclmul -mpopcnt -mabm -mno-lwp -mfma -mno-fma4 -mno-xop"
> CFLAGS="${CFLAGS} -mbmi -mbmi2 -mno-tbm -mavx -mavx2 -msse4.2 -msse4.1 
> -mlzcnt"
> CFLAGS="${CFLAGS} -mrdrnd -mf16c -mfsgsbase --param l1-cache-size=32"
> CFLAGS="${CFLAGS} --param l1-cache-line-size=64 --param l2-cache-size=4096"

gdb says that the bytes 0xF 0xC7 0xF0 are "rdrand %rax".  Evidently valgrind's 
libVEX
does not know about this, or perhaps the preceding 0x48 prefix has confused 
valgrind.
[gdb 7.9.1-20.fc22 didn't know how to interpret 0x48 0xF 0xC7 0xF0, either.]
So, please file a bug at http://valgrind.org/support/bug_reports.html .
Just copy+paste your original message into the bug report, and give a title
such as "rdrand not recognized on amd64".  Give the version of your compiler, 
too:
the output from "gcc --version" .

Meanwhile, it should be possible to make progress by avoiding the 'rdrand' 
instruction.
Is there some application flag or environment variable which says "do not use
the hardware random number generator?"
After that, try rebuilding libgcrypt-1.7.3 without "-mrdrnd".

-- 




        


------------------------------------------------------------------------------
_______________________________________________
Valgrind-users mailing list
Valgrind-users@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/valgrind-users

Reply via email to