Mono.Debugger.Architectures.X86_Instruction.CheckPrefix C# (CSharp) Method

CheckPrefix() private method

private CheckPrefix ( TargetReader reader ) : bool
reader Mono.Debugger.Backend.TargetReader
return bool
        bool CheckPrefix(TargetReader reader)
        {
            byte opcode = reader.PeekByte ();
            if ((opcode >= 0x40) && (opcode <= 0x4f)) {
                if (!Is64BitMode)
                    return false;

                if ((opcode & 0x01) != 0)
                    RexPrefix |= X86_REX_Prefix.REX_B;
                if ((opcode & 0x02) != 0)
                    RexPrefix |= X86_REX_Prefix.REX_X;
                if ((opcode & 0x04) != 0)
                    RexPrefix |= X86_REX_Prefix.REX_R;
                if ((opcode & 0x08) != 0)
                    RexPrefix |= X86_REX_Prefix.REX_W;
                return true;
            } else if (opcode == 0x26) {
                Prefix |= X86_Prefix.ES;
                return true;
            } else if (opcode == 0x2e) {
                Prefix |= X86_Prefix.CS;
                return true;
            } else if (opcode == 0x36) {
                Prefix |= X86_Prefix.SS;
                return true;
            } else if (opcode == 0x3e) {
                Prefix |= X86_Prefix.DS;
                return true;
            } else if (opcode == 0x64) {
                Prefix |= X86_Prefix.FS;
                return true;
            } else if (opcode == 0x65) {
                Prefix |= X86_Prefix.GS;
                return true;
            } else if (opcode == 0x66) {
                Prefix |= X86_Prefix.DATA;
                return true;
            } else if (opcode == 0x67) {
                Prefix |= X86_Prefix.ADDR;
                return true;
            } else if (opcode == 0xf0) {
                Prefix |= X86_Prefix.LOCK;
                return true;
            } else if (opcode == 0xf2) {
                Prefix |= X86_Prefix.REPNZ;
                return true;
            } else if (opcode == 0xf3) {
                Prefix |= X86_Prefix.REPZ;
                return true;
            }

            return false;
        }