public override string ToString() { GetValue(); return(CPU.GetStrRegr(reg) + ", " + Repr_shifts[shift] + " " + CPU.GetStrRegr(reg2)); }
//Rd := Rn AND NOT(shifter_operand) public override void Execute(uint Rn, uint Rd, Operand2 oper2) { int val = CPU.GetRegr(I_Reg, (int)Rn) & (~oper2.GetValue()); CPU.SetReg(I_Reg, (int)Rd, val); }
public override int GetValue() { reg = (int)Memory.ExtractBits(OperBits, 28, 31); shift = Memory.ExtractBits(OperBits, 25, 26); reg2 = (int)Memory.ExtractBits(OperBits, 20, 23); return((int)BarrelShift.Compute(shift, (uint)CPU.GetRegr(Oper2Regs, reg), (uint)CPU.GetRegr(Oper2Regs, reg2))); }
//Rd := NOT shifter_operand (no Rn) public override void Execute(uint Rn, uint Rd, Operand2 oper2) { CPU.SetReg(I_Reg, (int)Rd, ~oper2.GetValue()); }