diff --git a/InstructionSets/x86/Decoder.cpp b/InstructionSets/x86/Decoder.cpp index 3e5a3b586..cab0fa04b 100644 --- a/InstructionSets/x86/Decoder.cpp +++ b/InstructionSets/x86/Decoder.cpp @@ -420,10 +420,10 @@ std::pair::InstructionT> Decoder::decode(con case 0xe6: AddrReg(OUT, eAX, DataSize::Byte, DataSize::Byte); break; case 0xe7: AddrReg(OUT, eAX, data_size_, DataSize::Byte); break; - case 0xe8: Displacement(CALLrel, data_size_); break; - case 0xe9: Displacement(JMPrel, data_size_); break; - case 0xea: Far(JMPfar); break; - case 0xeb: Displacement(JMPrel, DataSize::Byte); break; + case 0xe8: Displacement(CALLrel, data_size(address_size_)); break; + case 0xe9: Displacement(JMPrel, data_size(address_size_)); break; + case 0xea: Far(JMPfar); break; + case 0xeb: Displacement(JMPrel, DataSize::Byte); break; case 0xec: Complete(IN, eDX, eAX, DataSize::Byte); break; case 0xed: Complete(IN, eDX, eAX, data_size_); break; diff --git a/OSBindings/Mac/Clock SignalTests/8088Tests.mm b/OSBindings/Mac/Clock SignalTests/8088Tests.mm index a041b0110..8c967ec99 100644 --- a/OSBindings/Mac/Clock SignalTests/8088Tests.mm +++ b/OSBindings/Mac/Clock SignalTests/8088Tests.mm @@ -146,7 +146,8 @@ std::string to_string( - (NSArray *)testFiles { NSString *path = [NSString stringWithUTF8String:TestSuiteHome]; NSSet *allowList = [NSSet setWithArray:@[ -// @"C4.json.gz", +// @"E8.json.gz", +// @"E9.json.gz", ]]; // Unofficial opcodes; ignored for now. @@ -229,7 +230,7 @@ std::string to_string( operation += to_string(instruction.source(), instruction, offsetLength, immediateLength); } if(displacement) { - operation += to_hex(instruction.displacement(), 2); + operation += to_hex(instruction.displacement(), offsetLength); } } break; @@ -278,7 +279,7 @@ std::string to_string( } } if(displacement) { - operation += to_hex(instruction.displacement(), 2); + operation += to_hex(instruction.displacement(), offsetLength); } break; }