Fix Bug in assembler parser, SDT offset for 32-bit registers
This commit is contained in:
parent
3e0991e257
commit
abe02ecc12
@ -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)
|
||||||
|
|||||||
Loading…
Reference in New Issue
Block a user