summaryrefslogtreecommitdiff
path: root/src/arch/x86/isa/decoder/one_byte_opcodes.isa
diff options
context:
space:
mode:
authorGabe Black <gblack@eecs.umich.edu>2009-04-19 03:42:41 -0700
committerGabe Black <gblack@eecs.umich.edu>2009-04-19 03:42:41 -0700
commit038225a6cae8ce1d8fc5246440b7f697eeb3c90a (patch)
tree6130b37812c98e1c7413acee8a8ca45b5469d0dc /src/arch/x86/isa/decoder/one_byte_opcodes.isa
parent3b1b21cb159c0368d50aa0dedd39a8874d91e735 (diff)
downloadgem5-038225a6cae8ce1d8fc5246440b7f697eeb3c90a.tar.xz
X86: Implement far jmp.
Diffstat (limited to 'src/arch/x86/isa/decoder/one_byte_opcodes.isa')
-rw-r--r--src/arch/x86/isa/decoder/one_byte_opcodes.isa13
1 files changed, 11 insertions, 2 deletions
diff --git a/src/arch/x86/isa/decoder/one_byte_opcodes.isa b/src/arch/x86/isa/decoder/one_byte_opcodes.isa
index 817986232..84d18441d 100644
--- a/src/arch/x86/isa/decoder/one_byte_opcodes.isa
+++ b/src/arch/x86/isa/decoder/one_byte_opcodes.isa
@@ -519,7 +519,10 @@
0x1: JMP(Jz);
0x2: decode MODE_SUBMODE {
0x0: UD2();
- default: WarnUnimpl::jmp_far_Ap();
+ 0x1: JMP_FAR(Iz);
+ 0x2: JMP_FAR(Iz);
+ 0x3: JMP_FAR_REAL(Iz);
+ 0x4: JMP_FAR_REAL(Iz);
}
0x3: JMP(Jb);
0x4: IN(rAb,rD);
@@ -581,7 +584,13 @@
0x2: CALL_NEAR(Ev);
0x3: WarnUnimpl::call_far_Mp();
0x4: JMP(Ev);
- 0x5: WarnUnimpl::jmp_far_Mp();
+ 0x5: decode MODE_SUBMODE {
+ 0x0: JMP_FAR(Mz);
+ 0x1: JMP_FAR(Mz);
+ 0x2: JMP_FAR(Mz);
+ 0x3: JMP_FAR_REAL(Mz);
+ 0x4: JMP_FAR_REAL(Mz);
+ }
0x6: PUSH(Ev);
0x7: UD2();
}