コード例 #1
0
        public static void Ldp(ArmEmitterContext context)
        {
            OpCodeMemPair op = (OpCodeMemPair)context.CurrOp;

            void EmitLoad(int rt, Operand ldAddr)
            {
                if (op.Extend64)
                {
                    EmitLoadSx64(context, ldAddr, rt, op.Size);
                }
                else
                {
                    EmitLoadZx(context, ldAddr, rt, op.Size);
                }
            }

            Operand address = GetAddress(context);

            Operand address2 = context.Add(address, Const(1L << op.Size));

            EmitLoad(op.Rt, address);
            EmitLoad(op.Rt2, address2);

            EmitWBackIfNeeded(context, address);
        }
コード例 #2
0
ファイル: InstEmitMemory.cs プロジェクト: piyachetk/Ryujinx
        public static void Stp(ArmEmitterContext context)
        {
            OpCodeMemPair op = (OpCodeMemPair)context.CurrOp;

            Operand address  = GetAddress(context);
            Operand address2 = GetAddress(context, 1L << op.Size);

            InstEmitMemoryHelper.EmitStore(context, address, op.Rt, op.Size);
            InstEmitMemoryHelper.EmitStore(context, address2, op.Rt2, op.Size);

            EmitWBackIfNeeded(context, address);
        }