summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--src/arch/x86/isa/decoder/two_byte_opcodes.isa11
1 files changed, 7 insertions, 4 deletions
diff --git a/src/arch/x86/isa/decoder/two_byte_opcodes.isa b/src/arch/x86/isa/decoder/two_byte_opcodes.isa
index 339e5a0ab..7a4f9e198 100644
--- a/src/arch/x86/isa/decoder/two_byte_opcodes.isa
+++ b/src/arch/x86/isa/decoder/two_byte_opcodes.isa
@@ -756,10 +756,13 @@
Rcx = result.rcx;
Rdx = result.rdx;
} else {
- Rax = Rax;
- Rbx = Rbx;
- Rcx = Rcx;
- Rdx = Rdx;
+ // It isn't defined what to do in this case. We used to
+ // leave R[abcd]x unmodified, but setting them all to 0
+ // seems a little safer and more predictable.
+ Rax = 0;
+ Rbx = 0;
+ Rcx = 0;
+ Rdx = 0;
}
}});
0x3: Inst::BT(Ev,Gv);