Do not emit StoreToContext before Return (#1537)

* Do not emit StoreToContext before Return

* Set PPTC version
This commit is contained in:
FICTURE7 2020-09-07 06:52:17 +04:00 committed by GitHub
parent 6aef271661
commit 4c7bebf3e6
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
3 changed files with 10 additions and 3 deletions

View file

@ -118,9 +118,13 @@ namespace ARMeilleure.Instructions
if (IsThumb(context.CurrOp)) if (IsThumb(context.CurrOp))
{ {
context.StoreToContext();
bool isReturn = IsA32Return(context); bool isReturn = IsA32Return(context);
if (!isReturn)
{
context.StoreToContext();
}
Operand addr = context.BitwiseOr(value, Const(1)); Operand addr = context.BitwiseOr(value, Const(1));
InstEmitFlowHelper.EmitVirtualJump(context, addr, isReturn); InstEmitFlowHelper.EmitVirtualJump(context, addr, isReturn);

View file

@ -56,7 +56,10 @@ namespace ARMeilleure.Instructions
{ {
if (regIndex == RegisterAlias.Aarch32Pc) if (regIndex == RegisterAlias.Aarch32Pc)
{ {
context.StoreToContext(); if (!IsA32Return(context))
{
context.StoreToContext();
}
EmitBxWritePc(context, value); EmitBxWritePc(context, value);
} }

View file

@ -21,7 +21,7 @@ namespace ARMeilleure.Translation.PTC
{ {
private const string HeaderMagic = "PTChd"; 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 ActualDir = "0";
private const string BackupDir = "1"; private const string BackupDir = "1";