protected OpCodeHandler(uint opCode, int groupIndex, OpCodeHandlerFlags flags, Encodable encodable, OperandSize opSize, AddressSize addrSize, TryConvertToDisp8N?tryConvertToDisp8N, Op[] operands) { OpCode = opCode; GroupIndex = groupIndex; Flags = flags; Encodable = encodable; OpSize = opSize; AddrSize = addrSize; TryConvertToDisp8N = tryConvertToDisp8N; Operands = operands; }
protected OpCodeHandler(EncFlags2 encFlags2, EncFlags3 encFlags3, bool isSpecialInstr, TryConvertToDisp8N?tryConvertToDisp8N, Op[] operands) { EncFlags3 = encFlags3; OpCode = GetOpCode(encFlags2); Is2ByteOpCode = (encFlags2 & EncFlags2.OpCodeIs2Bytes) != 0; GroupIndex = (encFlags2 & EncFlags2.HasGroupIndex) == 0 ? -1 : (int)(((uint)encFlags2 >> (int)EncFlags2.GroupIndexShift) & 7); RmGroupIndex = (encFlags3 & EncFlags3.HasRmGroupIndex) == 0 ? -1 : (int)(((uint)encFlags2 >> (int)EncFlags2.GroupIndexShift) & 7); IsSpecialInstr = isSpecialInstr; OpSize = (CodeSize)(((uint)encFlags3 >> (int)EncFlags3.OperandSizeShift) & (uint)EncFlags3.OperandSizeMask); AddrSize = (CodeSize)(((uint)encFlags3 >> (int)EncFlags3.AddressSizeShift) & (uint)EncFlags3.AddressSizeMask); TryConvertToDisp8N = tryConvertToDisp8N; Operands = operands; }