diff options
-rw-r--r-- | src/arch/x86/isa/decoder/two_byte_opcodes.isa | 11 |
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); |