mirror of
https://github.com/Zenithsiz/ftmemsim-valgrind.git
synced 2026-02-04 02:18:37 +00:00
PR432809 VEX should support REX.W + POPF
It seems a REX.W prefix simply explicitly sets the operant size to 8, and so can/must be ignored as redundant. This is what we already do for PUSH, POP and PUSHF. All instructions are described as "When in 64-bit mode, instruction defaults to 64-bit operand size and cannot encode 32-bit operand size." in the instruction manual. Original patch and analysis by Mike Dalessio <mike.dalessio@gmail.com> https://bugs.kde.org/show_bug.cgi?id=432809
This commit is contained in:
parent
b4eff82004
commit
e2e830f612
1
NEWS
1
NEWS
@ -88,6 +88,7 @@ n-i-bz helgrind: If hg_cli__realloc fails, return NULL.
|
||||
430354 ppc stxsibx and stxsihx instructions write too much data
|
||||
430485 expr_is_guardable doesn't handle Iex_Qop
|
||||
432672 vg_regtest: test-specific environment variables not reset between tests
|
||||
432809 VEX should support REX.W + POPF
|
||||
432861 PPC modsw and modsd give incorrect results for 1 mod 12
|
||||
|
||||
Release 3.16.1 (?? June 2020)
|
||||
|
||||
@ -20586,7 +20586,7 @@ Long dis_ESC_NONE (
|
||||
/* Note. There is no encoding for a 32-bit popf in 64-bit mode.
|
||||
So sz==4 actually means sz==8. */
|
||||
if (haveF2orF3(pfx)) goto decode_failure;
|
||||
vassert(sz == 2 || sz == 4);
|
||||
vassert(sz == 2 || sz == 4 || sz == 8);
|
||||
if (sz == 4) sz = 8;
|
||||
if (sz != 8) goto decode_failure; // until we know a sz==2 test case exists
|
||||
t1 = newTemp(Ity_I64); t2 = newTemp(Ity_I64);
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user