Update execute, implemented the store instrs, w/ T
This commit is contained in:
parent
75a8d79bb4
commit
a3dd809437
@ -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);
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
Loading…
Reference in New Issue
Block a user