public OpCodeAluImm64(Inst inst, long position, int opCode) : base(inst, position, opCode) { if (DataOp == DataOp.Arithmetic) { Imm = (opCode >> 10) & 0xfff; int shift = (opCode >> 22) & 3; Imm <<= shift * 12; } else if (DataOp == DataOp.Logical) { var bm = DecoderHelper.DecodeBitMask(opCode, true); if (bm.IsUndefined) { Emitter = InstEmit.Und; return; } Imm = bm.WMask; } else { throw new ArgumentException(nameof(opCode)); } }
public OpCodeBfm64(Inst inst, long position, int opCode) : base(inst, position, opCode) { var bm = DecoderHelper.DecodeBitMask(opCode, false); if (bm.IsUndefined) { Emitter = InstEmit.Und; return; } WMask = bm.WMask; TMask = bm.TMask; Pos = bm.Pos; Shift = bm.Shift; }