Пример #1
0
        public OpCodeAdr64(Inst inst, long position, int opCode) : base(inst, position, opCode)
        {
            Rd = opCode & 0x1f;

            Imm  = DecoderHelper.DecodeImmS19_2(opCode);
            Imm |= ((long)opCode >> 29) & 3;
        }
Пример #2
0
        public OpCodeBImmCmp64(Inst inst, long position, int opCode) : base(inst, position, opCode)
        {
            Rt = opCode & 0x1f;

            Imm = position + DecoderHelper.DecodeImmS19_2(opCode);

            RegisterSize = (opCode >> 31) != 0
                ? State.RegisterSize.Int64
                : State.RegisterSize.Int32;
        }
Пример #3
0
        public OpCodeBImmCond64(Inst inst, long position, int opCode) : base(inst, position, opCode)
        {
            int o0 = (opCode >> 4) & 1;

            if (o0 != 0)
            {
                Emitter = InstEmit.Und;

                return;
            }

            Cond = (Condition)(opCode & 0xf);

            Imm = position + DecoderHelper.DecodeImmS19_2(opCode);
        }
Пример #4
0
        public OpCodeMemLit64(Inst inst, long position, int opCode) : base(inst, position, opCode)
        {
            Rt = opCode & 0x1f;

            Imm = position + DecoderHelper.DecodeImmS19_2(opCode);

            switch ((opCode >> 30) & 3)
            {
            case 0: Size = 2; Signed = false; Prefetch = false; break;

            case 1: Size = 3; Signed = false; Prefetch = false; break;

            case 2: Size = 2; Signed = true;  Prefetch = false; break;

            case 3: Size = 0; Signed = false; Prefetch = true;  break;
            }
        }
Пример #5
0
        public OpCodeSimdMemLit64(Inst inst, long position, int opCode) : base(inst, position, opCode)
        {
            int opc = (opCode >> 30) & 3;

            if (opc == 3)
            {
                Emitter = InstEmit.Und;

                return;
            }

            Rt = opCode & 0x1f;

            Imm = position + DecoderHelper.DecodeImmS19_2(opCode);

            Size = opc + 2;
        }