x86: Correct translation of some rdgsbase and wrgsbase encodings
It looks like there was a transcription error when writing this code initially. The code previously only decoded src or dst of rax. This resolves https://bugs.launchpad.net/qemu/+bug/1719984. Signed-off-by: Todd Eisenberger <teisenbe@google.com> Message-Id: <CAP26EVRNVb=Mq=O3s51w7fDhGVmf-e3XFFA73MRzc5b4qKBA4g@mail.gmail.com> Reviewed-by: Richard Henderson <richard.henderson@linaro.org> Signed-off-by: Eduardo Habkost <ehabkost@redhat.com>
This commit is contained in:
parent
c0dd109919
commit
e0dd5fd41a
@ -8155,9 +8155,9 @@ static target_ulong disas_insn(DisasContext *s, CPUState *cpu)
|
|||||||
break;
|
break;
|
||||||
|
|
||||||
case 0xc0 ... 0xc7: /* rdfsbase (f3 0f ae /0) */
|
case 0xc0 ... 0xc7: /* rdfsbase (f3 0f ae /0) */
|
||||||
case 0xc8 ... 0xc8: /* rdgsbase (f3 0f ae /1) */
|
case 0xc8 ... 0xcf: /* rdgsbase (f3 0f ae /1) */
|
||||||
case 0xd0 ... 0xd7: /* wrfsbase (f3 0f ae /2) */
|
case 0xd0 ... 0xd7: /* wrfsbase (f3 0f ae /2) */
|
||||||
case 0xd8 ... 0xd8: /* wrgsbase (f3 0f ae /3) */
|
case 0xd8 ... 0xdf: /* wrgsbase (f3 0f ae /3) */
|
||||||
if (CODE64(s)
|
if (CODE64(s)
|
||||||
&& (prefixes & PREFIX_REPZ)
|
&& (prefixes & PREFIX_REPZ)
|
||||||
&& !(prefixes & PREFIX_LOCK)
|
&& !(prefixes & PREFIX_LOCK)
|
||||||
|
Loading…
Reference in New Issue
Block a user