diff --git a/src/parser.c b/src/parser.c index c5bc66f..2d71001 100644 --- a/src/parser.c +++ b/src/parser.c @@ -249,6 +249,28 @@ void classifyOpcode(char* opcode, a64inst_instruction *instr, char *operandList[ } } // wide move + else { + data.DPIOpType = 1; + data.dest = getOperandNumber(operandList[0]); + switch (opcode[3]) { + case 'k': + data.processOp = 3; + break; + case 'n': + data.processOp = 0; + break; + case 'z': + data.processOp = 2; + break; + default: + data.processOp = 1; + break; + } + data.processOpData.wideMovData.immediate = getOperandNumber(operandList[1]); + if (numOperands == 3){ + data.processOpData.wideMovData.shiftScalar = getOperandNumber(strtok(operandList[2], ' ')[1]); + } + } } }