public override SparcInstruction Decode(uint wInstr, SparcDisassembler dasm) { uint i = ((wInstr >> 25) & 0xF) + offset; SparcInstruction instr = branchOps[i].Decode(wInstr, dasm); instr.InstructionClass |= ((wInstr & (1u << 29)) != 0) ? InstrClass.Annul : 0; return(instr); }
private SparcInstruction Instr(Mnemonic mnemonic, params object[] ops) { var instr = new SparcInstruction { Mnemonic = mnemonic, Operands = ops.Select(Op).ToArray() }; return(instr); }
private SparcInstruction Instr(Opcode opcode, params object[] ops) { var instr = new SparcInstruction { Opcode = opcode }; if (ops.Length > 0) { instr.Op1 = Op(ops[0]); if (ops.Length > 1) { instr.Op2 = Op(ops[1]); if (ops.Length > 2) { instr.Op3 = Op(ops[2]); } } } return(instr); }