Patch: Fix DISP32 for ADD_RM32_R32
This commit is contained in:
@@ -52,6 +52,15 @@ namespace executor_cases {
|
||||
cc.m_Bus->WriteX<uint32_t>(dstAddress, result);
|
||||
break;
|
||||
}
|
||||
case x86::ModRMState::DISP32:
|
||||
{
|
||||
uint32_t dstAddress = cc.m_Instruction.m_Operand1;
|
||||
uint32_t dstPrevValue = cc.m_Bus->AccessX<uint32_t>(dstAddress);
|
||||
uint32_t currRegValue = cc.m_Registers[modrm.m_Reg];
|
||||
uint32_t result = dstPrevValue + currRegValue;
|
||||
cc.m_Bus->WriteX<uint32_t>(dstAddress, result);
|
||||
break;
|
||||
}
|
||||
default:
|
||||
{
|
||||
throw std::runtime_error("Invalid ModRM State encountered during Add_rm32_r32");
|
||||
|
||||
Reference in New Issue
Block a user