Implementing disassembler interface
This commit is contained in:
+6
-6
@@ -27,13 +27,13 @@ static const int8_t LOOKUP_OPCODE[] = {
|
||||
VUE_SHL_REG, 1, VUE_SHR_REG, 1, VUE_JMP , 1, VUE_SAR_REG, 1,
|
||||
VUE_MUL , 1, VUE_DIV , 1, VUE_MULU , 1, VUE_DIVU , 1,
|
||||
VUE_OR , 1, VUE_AND , 1, VUE_XOR , 1, VUE_NOT , 1,
|
||||
-VUE_MOV_IMM, 2,-VUE_ADD_IMM, 2, VUE_SETF , 2,-VUE_CMP_IMM, 2,
|
||||
VUE_MOV_IMM,-2, VUE_ADD_IMM,-2, VUE_SETF , 2, VUE_CMP_IMM,-2,
|
||||
VUE_SHL_IMM, 2, VUE_SHR_IMM, 2, VUE_CLI , 2, VUE_SAR_IMM, 2,
|
||||
VUE_TRAP , 2, VUE_RETI , 2, VUE_HALT , 2, VUE_ILLEGAL, 0,
|
||||
VUE_LDSR , 2, VUE_STSR , 2, VUE_SEI , 2, BITSTRING , 2,
|
||||
VUE_BCOND , 3, VUE_BCOND , 3, VUE_BCOND , 3, VUE_BCOND , 3,
|
||||
VUE_BCOND , 3, VUE_BCOND , 3, VUE_BCOND , 3, VUE_BCOND , 3,
|
||||
-VUE_MOVEA , 5,-VUE_ADDI , 5, VUE_JR , 4, VUE_JAL , 4,
|
||||
VUE_MOVEA ,-5, VUE_ADDI ,-5, VUE_JR , 4, VUE_JAL , 4,
|
||||
VUE_ORI , 5, VUE_ANDI , 5, VUE_XORI , 5, VUE_MOVHI , 5,
|
||||
VUE_LD_B , 6, VUE_LD_H , 6, VUE_ILLEGAL, 0, VUE_LD_W , 6,
|
||||
VUE_ST_B , 6, VUE_ST_H , 6, VUE_ILLEGAL, 0, VUE_ST_W , 6,
|
||||
@@ -71,10 +71,10 @@ static void cpuDecode(VUE_INST *inst, int32_t bits) {
|
||||
/* Configure instance fields */
|
||||
inst->bits = bits;
|
||||
inst->opcode = bits >> 26 & 63;
|
||||
x = inst->opcode << 1 | 1;
|
||||
extend = LOOKUP_OPCODE[x];
|
||||
inst->format = LOOKUP_OPCODE[x + 1];
|
||||
inst->id = extend < 0 ? -extend : extend;
|
||||
x = inst->opcode << 1;
|
||||
inst->id = LOOKUP_OPCODE[x ];
|
||||
extend = LOOKUP_OPCODE[x + 1];
|
||||
inst->format = extend < 0 ? -extend : extend;
|
||||
inst->size = inst->format < 4 ? 2 : 4;
|
||||
|
||||
/* Decode by format */
|
||||
|
||||
Reference in New Issue
Block a user