changeset 8fb2884b0a75 in /z/repo/gem5
details: http://repo.gem5.org/gem5?cmd=changeset;node=8fb2884b0a75
description:
        x86: Fix some bugs in the real mode far jmp instruction.

        The far pointer should be shifted right to get the selector value, not 
left.
        Also, when calculating the width of the offset, the wrong register was 
used in
        one spot.

diffstat:

 src/arch/x86/isa/insts/general_purpose/control_transfer/jump.py |  4 ++--
 1 files changed, 2 insertions(+), 2 deletions(-)

diffs (17 lines):

diff -r 7be879ff600c -r 8fb2884b0a75 
src/arch/x86/isa/insts/general_purpose/control_transfer/jump.py
--- a/src/arch/x86/isa/insts/general_purpose/control_transfer/jump.py   Mon Nov 
17 00:19:07 2014 -0800
+++ b/src/arch/x86/isa/insts/general_purpose/control_transfer/jump.py   Mon Nov 
17 00:20:01 2014 -0800
@@ -162,11 +162,11 @@
     limm t3, dsz, dataSize=8
     slli t3, t3, 3, dataSize=8
     # Get the selector into t1.
-    sll t1, t2, t3, dataSize=8
+    srl t1, t2, t3, dataSize=8
     mov t1, t0, t1, dataSize=2
     # And get the offset into t2
     mov t2, t0, t2
-    slli t3, t3, 4, dataSize=8
+    slli t3, t1, 4, dataSize=8
     wrsel cs, t1, dataSize=2
     wrbase cs, t3
     wrip t0, t2, dataSize=asz
_______________________________________________
gem5-dev mailing list
[email protected]
http://m5sim.org/mailman/listinfo/gem5-dev

Reply via email to