Fix Bug In Unsigned Offset SDT, multiply correctly, w/ T
This commit is contained in:
parent
efc8c087f9
commit
c6574b72f8
@ -221,8 +221,7 @@ void execute_SDT(Machine *state, a64inst_instruction *inst) {
|
||||
isLoad = inst->data.SingleTransferData.processOpData.singleDataTransferData.transferType == a64inst_LOAD;
|
||||
switch (inst->data.SingleTransferData.processOpData.singleDataTransferData.addressingMode) {
|
||||
case a64inst_UNSIGNED_OFFSET:
|
||||
address += inst->data.SingleTransferData.processOpData.singleDataTransferData.a64inst_addressingModeData.unsignedOffset;
|
||||
address *= inst->data.SingleTransferData.regType == a64inst_W ? 4 : 8;
|
||||
address += inst->data.SingleTransferData.processOpData.singleDataTransferData.a64inst_addressingModeData.unsignedOffset * (inst->data.SingleTransferData.regType == a64inst_W ? 4 : 8);
|
||||
break;
|
||||
case a64inst_REGISTER_OFFSET:
|
||||
address += state->registers[inst->data.SingleTransferData.processOpData.singleDataTransferData.a64inst_addressingModeData.offsetReg];
|
||||
|
||||
Loading…
Reference in New Issue
Block a user