summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorTodd Eisenberger <teisenbe@google.com>2017-09-28 10:17:06 -0700
committerEduardo Habkost <ehabkost@redhat.com>2017-10-09 23:29:20 -0300
commite0dd5fd41a1a38766009f442967fab700d2d0550 (patch)
tree7cac6341df37f80a05a7d71bdabe1ff3892c9994
parentc0dd10991903c552811d8cbe9231055b1b3a7ebd (diff)
downloadqemu-e0dd5fd41a1a38766009f442967fab700d2d0550.tar.gz
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>
-rw-r--r--target/i386/translate.c4
1 files changed, 2 insertions, 2 deletions
diff --git a/target/i386/translate.c b/target/i386/translate.c
index a8986f4c1a..7b920115f9 100644
--- a/target/i386/translate.c
+++ b/target/i386/translate.c
@@ -8155,9 +8155,9 @@ static target_ulong disas_insn(DisasContext *s, CPUState *cpu)
break;
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 0xd8 ... 0xd8: /* wrgsbase (f3 0f ae /3) */
+ case 0xd8 ... 0xdf: /* wrgsbase (f3 0f ae /3) */
if (CODE64(s)
&& (prefixes & PREFIX_REPZ)
&& !(prefixes & PREFIX_LOCK)