Fix Bug in assembler parser, SDT offset for 32-bit registers

This commit is contained in:
sBubshait 2024-06-16 18:24:41 +01:00
parent 3e0991e257
commit abe02ecc12

View File

@ -421,7 +421,7 @@ static void parseAddressingMode(a64inst_instruction *instr, char *tokens[], int
instr->data.SingleTransferData.processOpData.singleDataTransferData.addressingMode = a64inst_UNSIGNED_OFFSET; instr->data.SingleTransferData.processOpData.singleDataTransferData.addressingMode = a64inst_UNSIGNED_OFFSET;
if(operandCount > 1){ if(operandCount > 1){
int offset = getImmediate(operands[1]); int offset = getImmediate(operands[1]);
instr->data.SingleTransferData.processOpData.singleDataTransferData.a64inst_addressingModeData.unsignedOffset = offset/8; instr->data.SingleTransferData.processOpData.singleDataTransferData.a64inst_addressingModeData.unsignedOffset = instr->data.SingleTransferData.regType == a64inst_W ? offset/4 : offset/8;
} }
} else { } else {
if((isRegister(operands[0]) == 1) if((isRegister(operands[0]) == 1)