forked from Mirror/Ryujinx
Fix return type mismatch on 32-bit titles (#3000)
This commit is contained in:
parent
3fa7ef21b4
commit
bd215e447d
2 changed files with 8 additions and 3 deletions
|
@ -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
|
||||||
|
|
|
@ -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);
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in a new issue