Fix return type mismatch on 32-bit titles (#3000)

This commit is contained in:
gdkchan 2022-01-16 08:39:43 -03:00 committed by GitHub
parent 3fa7ef21b4
commit bd215e447d
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
2 changed files with 8 additions and 3 deletions

View file

@ -163,6 +163,11 @@ namespace ARMeilleure.Instructions
{ {
if (isReturn) if (isReturn)
{ {
if (target.Type == OperandType.I32)
{
target = context.ZeroExtend32(OperandType.I64, target);
}
context.Return(target); context.Return(target);
} }
else else

View file

@ -101,7 +101,7 @@ namespace ARMeilleure.Instructions
Operand address = GetAddress(context); Operand address = GetAddress(context);
InstEmitMemoryHelper.EmitStore(context, address, op.Rt, op.Size); EmitStore(context, address, op.Rt, op.Size);
EmitWBackIfNeeded(context, address); EmitWBackIfNeeded(context, address);
} }
@ -113,8 +113,8 @@ namespace ARMeilleure.Instructions
Operand address = GetAddress(context); Operand address = GetAddress(context);
Operand address2 = GetAddress(context, 1L << op.Size); Operand address2 = GetAddress(context, 1L << op.Size);
InstEmitMemoryHelper.EmitStore(context, address, op.Rt, op.Size); EmitStore(context, address, op.Rt, op.Size);
InstEmitMemoryHelper.EmitStore(context, address2, op.Rt2, op.Size); EmitStore(context, address2, op.Rt2, op.Size);
EmitWBackIfNeeded(context, address); EmitWBackIfNeeded(context, address);
} }