From abe02ecc12b71e18f3da015a576d6eff337d7a8b Mon Sep 17 00:00:00 2001 From: sBubshait Date: Sun, 16 Jun 2024 18:24:41 +0100 Subject: [PATCH] Fix Bug in assembler parser, SDT offset for 32-bit registers --- src/assembler/parse.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/assembler/parse.c b/src/assembler/parse.c index 7020ed4..4c1e942 100644 --- a/src/assembler/parse.c +++ b/src/assembler/parse.c @@ -421,7 +421,7 @@ static void parseAddressingMode(a64inst_instruction *instr, char *tokens[], int instr->data.SingleTransferData.processOpData.singleDataTransferData.addressingMode = a64inst_UNSIGNED_OFFSET; if(operandCount > 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 { if((isRegister(operands[0]) == 1)