adjust operand counts for calculating address format

This commit is contained in:
EDiasAlberto 2024-06-06 14:46:56 +01:00
parent f1ac860d6a
commit 5413d27026

View File

@ -17,13 +17,13 @@
//calculate offsets from string //calculate offsets from string
void calcluateAddressFormat(a64inst_instruction *instr, char *operandList[]){ void calcluateAddressFormat(a64inst_instruction *instr, char *operandList[]){
if(strcmp(operandList[1][strlen(operandList[1])-1], "!")==0){ if(strcmp(operandList[2][strlen(operandList[1])-1], "!")==0){
instr->data.processOpData.addressingMode = a64inst_PRE_INDEXED; instr->data.processOpData.addressingMode = a64inst_PRE_INDEXED;
} else if(strcmp(operandList[0][strlen(operandList[0])-1], "]") == 0) { } else if(strcmp(operandList[1][strlen(operandList[0])-1], "]") == 0) {
//post-indexed //post-indexed
instr->data.processOpData.addressingMode = a64inst_POST_INDEXED; instr->data.processOpData.addressingMode = a64inst_POST_INDEXED;
} else if( (strcmp(operandList[1][strlen(operandList[1])-1], "x") == 0) } else if( (strcmp(operandList[2][strlen(operandList[1])-1], "x") == 0)
|| (strcmp(operandList[1][strlen(operandList[1])-1], "w") == 0)){ || (strcmp(operandList[2][strlen(operandList[1])-1], "w") == 0)){
//register //register
instr->data.processOpData.addressingMode = a64inst_REGISTER_OFFSET; instr->data.processOpData.addressingMode = a64inst_REGISTER_OFFSET;
} else { } else {