diff --git a/ARMeilleure/Instructions/InstEmitAluHelper.cs b/ARMeilleure/Instructions/InstEmitAluHelper.cs index 12fa1bf1b..8c71d4cb0 100644 --- a/ARMeilleure/Instructions/InstEmitAluHelper.cs +++ b/ARMeilleure/Instructions/InstEmitAluHelper.cs @@ -118,9 +118,13 @@ namespace ARMeilleure.Instructions if (IsThumb(context.CurrOp)) { - context.StoreToContext(); bool isReturn = IsA32Return(context); + if (!isReturn) + { + context.StoreToContext(); + } + Operand addr = context.BitwiseOr(value, Const(1)); InstEmitFlowHelper.EmitVirtualJump(context, addr, isReturn); diff --git a/ARMeilleure/Instructions/InstEmitHelper.cs b/ARMeilleure/Instructions/InstEmitHelper.cs index a4227543f..d1bbe3f1e 100644 --- a/ARMeilleure/Instructions/InstEmitHelper.cs +++ b/ARMeilleure/Instructions/InstEmitHelper.cs @@ -56,7 +56,10 @@ namespace ARMeilleure.Instructions { if (regIndex == RegisterAlias.Aarch32Pc) { - context.StoreToContext(); + if (!IsA32Return(context)) + { + context.StoreToContext(); + } EmitBxWritePc(context, value); } diff --git a/ARMeilleure/Translation/PTC/Ptc.cs b/ARMeilleure/Translation/PTC/Ptc.cs index 8ca83583e..eebf80759 100644 --- a/ARMeilleure/Translation/PTC/Ptc.cs +++ b/ARMeilleure/Translation/PTC/Ptc.cs @@ -21,7 +21,7 @@ namespace ARMeilleure.Translation.PTC { private const string HeaderMagic = "PTChd"; - private const int InternalVersion = 1522; //! To be incremented manually for each change to the ARMeilleure project. + private const int InternalVersion = 1537; //! To be incremented manually for each change to the ARMeilleure project. private const string ActualDir = "0"; private const string BackupDir = "1";