public AOpCodeAdr(AInst Inst, long Position, int OpCode) : base(Inst, Position)
        {
            Rd = OpCode & 0x1f;

            Imm  = ADecoderHelper.DecodeImmS19_2(OpCode);
            Imm |= ((long)OpCode >> 29) & 3;
        }
Exemple #2
0
        public AOpCodeBImmCmp(AInst Inst, long Position, int OpCode) : base(Inst, Position, OpCode)
        {
            Rt = OpCode & 0x1f;

            Imm = Position + ADecoderHelper.DecodeImmS19_2(OpCode);

            RegisterSize = (OpCode >> 31) != 0
                ? ARegisterSize.Int64
                : ARegisterSize.Int32;
        }
Exemple #3
0
        public AOpCodeBImmCond(AInst Inst, long Position, int OpCode) : base(Inst, Position)
        {
            int O0 = (OpCode >> 4) & 1;

            if (O0 != 0)
            {
                Emitter = AInstEmit.Und;

                return;
            }

            Cond = (ACond)(OpCode & 0xf);

            Imm = Position + ADecoderHelper.DecodeImmS19_2(OpCode);
        }
        public AOpCodeSimdMemLit(AInst Inst, long Position, int OpCode) : base(Inst, Position)
        {
            int Opc = (OpCode >> 30) & 3;

            if (Opc == 3)
            {
                Emitter = AInstEmit.Und;

                return;
            }

            Rt = OpCode & 0x1f;

            Imm = Position + ADecoderHelper.DecodeImmS19_2(OpCode);

            Size = Opc + 2;
        }
Exemple #5
0
        public AOpCodeMemLit(AInst Inst, long Position, int OpCode) : base(Inst, Position)
        {
            Rt = OpCode & 0x1f;

            Imm = Position + ADecoderHelper.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;
            }
        }
        public AOpCodeBImmCmp(AInst Inst, long Position, int OpCode) : base(Inst, Position)
        {
            Rt = OpCode & 0x1f;

            Imm = Position + ADecoderHelper.DecodeImmS19_2(OpCode);
        }