public OpCodeAluImm(InstDescriptor inst, ulong address, int opCode) : base(inst, address, opCode) { if (DataOp == DataOp.Arithmetic) { Immediate = (opCode >> 10) & 0xfff; int shift = (opCode >> 22) & 3; Immediate <<= shift * 12; } else if (DataOp == DataOp.Logical) { var bm = DecoderHelper.DecodeBitMask(opCode, true); if (bm.IsUndefined) { Instruction = InstDescriptor.Undefined; return; } Immediate = bm.WMask; } else { throw new ArgumentException(nameof(opCode)); } }
public OpCode32SimdCvtFFixed(InstDescriptor inst, ulong address, int opCode) : base(inst, address, opCode) { Opc = (opCode >> 8) & 0x1; Size = Opc == 1 ? 0 : 2; Fbits = 64 - ((opCode >> 16) & 0x3f); if (((opCode >> 21) & 0x1) == 0) { Instruction = InstDescriptor.Undefined; } if (DecoderHelper.VectorArgumentsInvalid(Q, Vd, Vm)) { Instruction = InstDescriptor.Undefined; } }