AsmResolver.X86.X86Assembler.DetermineRegOrMemModifier C# (CSharp) Метод

DetermineRegOrMemModifier() приватный статический Метод

private static DetermineRegOrMemModifier ( X86Operand operand ) : X86RegOrMemModifier
operand X86Operand
Результат X86RegOrMemModifier
        private static X86RegOrMemModifier DetermineRegOrMemModifier(X86Operand operand)
        {
            if (operand.Value is X86Register)
            {
                switch (operand.OffsetType)
                {
                    case X86OffsetType.None:
                        return operand.OperandUsage == X86OperandUsage.Normal
                            ? X86RegOrMemModifier.RegisterOnly
                            : X86RegOrMemModifier.RegisterPointer;
                    case X86OffsetType.Short:
                        return X86RegOrMemModifier.RegisterDispShortPointer;
                    case X86OffsetType.Long:
                        return X86RegOrMemModifier.RegisterDispLongPointer;
                }
                throw new NotSupportedException("Unsupported or unrecognized operand offset type.");
            }

            if (operand.Value is uint)
                return X86RegOrMemModifier.RegisterPointer;

            throw new ArgumentException("Operand is not a valid RegOrMem operand.", "operand");
        }