|
|
|
@ -223,27 +223,21 @@ void MacroInterpreter::ProcessResult(ResultOperation operation, u32 reg, u32 res |
|
|
|
} |
|
|
|
|
|
|
|
u32 MacroInterpreter::FetchParameter() { |
|
|
|
ASSERT(next_parameter_index < parameters.size()); |
|
|
|
return parameters[next_parameter_index++]; |
|
|
|
return parameters.at(next_parameter_index++); |
|
|
|
} |
|
|
|
|
|
|
|
u32 MacroInterpreter::GetRegister(u32 register_id) const { |
|
|
|
// Register 0 is supposed to always return 0.
|
|
|
|
if (register_id == 0) |
|
|
|
return 0; |
|
|
|
|
|
|
|
ASSERT(register_id < registers.size()); |
|
|
|
return registers[register_id]; |
|
|
|
return registers.at(register_id); |
|
|
|
} |
|
|
|
|
|
|
|
void MacroInterpreter::SetRegister(u32 register_id, u32 value) { |
|
|
|
// Register 0 is supposed to always return 0. NOP is implemented as a store to the zero
|
|
|
|
// register.
|
|
|
|
if (register_id == 0) |
|
|
|
// Register 0 is hardwired as the zero register.
|
|
|
|
// Ensure no writes to it actually occur.
|
|
|
|
if (register_id == 0) { |
|
|
|
return; |
|
|
|
} |
|
|
|
|
|
|
|
ASSERT(register_id < registers.size()); |
|
|
|
registers[register_id] = value; |
|
|
|
registers.at(register_id) = value; |
|
|
|
} |
|
|
|
|
|
|
|
void MacroInterpreter::SetMethodAddress(u32 address) { |
|
|
|
|