summaryrefslogtreecommitdiff
path: root/src/arch/x86/isa/decoder/one_byte_opcodes.isa
diff options
context:
space:
mode:
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();
}