private InstructionPayload ComposeRegister(Instruction ins, RvcPayload payload) { // Set the opcode, type and coding InstructionPayload p = new InstructionPayload(ins, payload.Coding); if (payload.Op == 1 && payload.Funct3 == 4 && payload.Funct2 == 3) { var mode = payload.Funct6 & 0x07; if (mode == 0x03) { // F4 = 8 parser32.ParseCaGeneric(payload, p); } if (mode == 0x07) { // F4 = 9 => C.SUBW / C.ADDW parser64.ParseAddWSubW(payload, p); } } if (payload.Op == 2 && payload.Funct3 == 4) { parser32.ParseAddAndMv(payload, p); } return(p); }
private InstructionPayload ComposeRegister(Instruction ins, RvcPayload payload) { // Set the opcode, type and coding InstructionPayload p = new InstructionPayload(ins, payload.Coding); if (payload.Op == 1 && payload.Funct3 == 4 && payload.Funct2 == 3) { parser32.ParseCaGeneric(payload, p); } if (payload.Op == 2 && payload.Funct3 == 4) { parser32.ParseAddAndMv(payload, p); } return(p); }