Update execute, implemented the store instrs, w/ T

This commit is contained in:
sBubshait 2024-06-05 23:30:20 +01:00
parent 75a8d79bb4
commit a3dd809437

View File

@ -391,11 +391,11 @@ void execute_SDT(Machine *state, a64inst_instruction *inst) {
state->registers[inst->data.SingleTransferData.target] = readDoubleWord(state->memory, address);
}
} else {
if (inst->data.SingleTransferData.regType == a64inst_W) {
// 32 bit access
state->registers[inst->data.SingleTransferData.target] = readWord(state->memory, address);
} else {
state->registers[inst->data.SingleTransferData.target] = readDoubleWord(state->memory, address);
*(word *)(state->memory + address) = state->registers[inst->data.SingleTransferData.target];
// Update base register if post indexed
if (inst->data.SingleTransferData.processOpData.singleDataTransferData.addressingMode == a64inst_POST_INDEXED) {
writeRegister(state, inst->data.SingleTransferData.processOpData.singleDataTransferData.base, inst->data.SingleTransferData.regType == a64inst_W, address + inst->data.SingleTransferData.processOpData.singleDataTransferData.a64inst_addressingModeData.indexedOffset);
}
}