digitalmars.D.bugs - [Issue 12873] New: Valgrind unhandled instruction bytes 0x48 0xDB
- via Digitalmars-d-bugs (33/33) Jun 06 2014 https://issues.dlang.org/show_bug.cgi?id=12873
https://issues.dlang.org/show_bug.cgi?id=12873 Issue ID: 12873 Summary: Valgrind unhandled instruction bytes 0x48 0xDB (redundant REX_W prefix on x87 load) Product: D Version: D1 & D2 Hardware: x86_64 OS: All Status: NEW Severity: major Priority: P1 Component: DMD Assignee: yebblies gmail.com Reporter: yebblies gmail.com This code, compiled with 2.066 master, fails to run under valgrind module complex; struct complex_t { real re = 0; real im = 0; int opEquals(complex_t y) { return re == y.re && im == y.im; } }; void main() { auto x = complex_t(0); assert(x == x); } Gives (among other messages) vex amd64->IR: unhandled instruction bytes: 0x48 0xDB 0x6B 0x70 0x48 0x83 This is a bug in valgrind, where it doesn't accept the redundant 0x48 (REX_W) prefix on the fld instruction. We can work around this by not emitting the REX_W prefix on this instruction. --
Jun 06 2014