|
From: Tom H. <tom...@so...> - 2021-07-06 12:50:02
|
https://sourceware.org/git/gitweb.cgi?p=valgrind.git;h=43543527a293e626e601202ca4eeb2216f40815d commit 43543527a293e626e601202ca4eeb2216f40815d Author: Tom Hughes <to...@co...> Date: Tue Jul 6 13:46:28 2021 +0100 Ignore redundant REX.W for some MOVDQU variants Fixes BZ#438871 Diff: --- NEWS | 1 + VEX/priv/guest_amd64_toIR.c | 6 ++++-- 2 files changed, 5 insertions(+), 2 deletions(-) diff --git a/NEWS b/NEWS index c109b765dd..e291cb1e58 100644 --- a/NEWS +++ b/NEWS @@ -42,6 +42,7 @@ are not entered into bugzilla tend to get forgotten about or ignored. 434296 s390x: False-positive memcheck diagnostics from vector string instructions 435665 PPC ISA 3.0 copy, paste, cpabort instructions are not supported +438871 unhandled instruction bytes: 0xF3 0x49 0xF 0x6F 0x9C 0x24 0x60 0x2 0x0 0x0 435908 valgrind tries to fetch from deubginfod for files which already have debug information diff --git a/VEX/priv/guest_amd64_toIR.c b/VEX/priv/guest_amd64_toIR.c index 2b40f6a5aa..ad720873d4 100644 --- a/VEX/priv/guest_amd64_toIR.c +++ b/VEX/priv/guest_amd64_toIR.c @@ -13883,7 +13883,8 @@ Long dis_ESC_0F__SSE2 ( Bool* decode_OK, } goto decode_success; } - if (haveF3no66noF2(pfx) && sz == 4) { + if (haveF3no66noF2(pfx) + && (sz == 4 || /* ignore redundant REX.W */ sz == 8)) { /* F3 0F 6F = MOVDQU -- move from E (mem or xmm) to G (xmm). */ modrm = getUChar(delta); if (epartIsReg(modrm)) { @@ -14144,7 +14145,8 @@ Long dis_ESC_0F__SSE2 ( Bool* decode_OK, case 0x7F: /* F3 0F 7F = MOVDQU -- move from G (xmm) to E (mem or xmm). */ - if (haveF3no66noF2(pfx) && sz == 4) { + if (haveF3no66noF2(pfx) + && (sz == 4 || /* ignore redundant REX.W */ sz == 8)) { modrm = getUChar(delta); if (epartIsReg(modrm)) { goto decode_failure; /* awaiting test case */ |