From bd215e447d68403901e762aa16ba9b6579ed7cd7 Mon Sep 17 00:00:00 2001
From: gdkchan <gab.dark.100@gmail.com>
Date: Sun, 16 Jan 2022 08:39:43 -0300
Subject: [PATCH] Fix return type mismatch on 32-bit titles (#3000)

---
 ARMeilleure/Instructions/InstEmitFlowHelper.cs | 5 +++++
 ARMeilleure/Instructions/InstEmitMemory.cs     | 6 +++---
 2 files changed, 8 insertions(+), 3 deletions(-)

diff --git a/ARMeilleure/Instructions/InstEmitFlowHelper.cs b/ARMeilleure/Instructions/InstEmitFlowHelper.cs
index 8ce704b1..6ac32908 100644
--- a/ARMeilleure/Instructions/InstEmitFlowHelper.cs
+++ b/ARMeilleure/Instructions/InstEmitFlowHelper.cs
@@ -163,6 +163,11 @@ namespace ARMeilleure.Instructions
         {
             if (isReturn)
             {
+                if (target.Type == OperandType.I32)
+                {
+                    target = context.ZeroExtend32(OperandType.I64, target);
+                }
+
                 context.Return(target);
             }
             else
diff --git a/ARMeilleure/Instructions/InstEmitMemory.cs b/ARMeilleure/Instructions/InstEmitMemory.cs
index b507938d..7baed14c 100644
--- a/ARMeilleure/Instructions/InstEmitMemory.cs
+++ b/ARMeilleure/Instructions/InstEmitMemory.cs
@@ -101,7 +101,7 @@ namespace ARMeilleure.Instructions
 
             Operand address = GetAddress(context);
 
-            InstEmitMemoryHelper.EmitStore(context, address, op.Rt, op.Size);
+            EmitStore(context, address, op.Rt, op.Size);
 
             EmitWBackIfNeeded(context, address);
         }
@@ -113,8 +113,8 @@ namespace ARMeilleure.Instructions
             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);
+            EmitStore(context, address,  op.Rt,  op.Size);
+            EmitStore(context, address2, op.Rt2, op.Size);
 
             EmitWBackIfNeeded(context, address);
         }