|
From: <sv...@va...> - 2005-11-12 12:56:39
|
Author: sewardj
Date: 2005-11-12 12:56:31 +0000 (Sat, 12 Nov 2005)
New Revision: 1451
Log:
Always mark blrl as a return.
Modified:
trunk/priv/guest-ppc32/toIR.c
Modified: trunk/priv/guest-ppc32/toIR.c
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D
--- trunk/priv/guest-ppc32/toIR.c 2005-11-11 18:37:10 UTC (rev 1450)
+++ trunk/priv/guest-ppc32/toIR.c 2005-11-12 12:56:31 UTC (rev 1451)
@@ -3233,7 +3233,10 @@
IRConst_U32(guest_CIA_curr_instr + 4)
));
=20
- irbb->jumpkind =3D flag_LK ? Ijk_Call : Ijk_Ret;
+ /* blrl is pretty strange; it's like a return that sets the
+ return address of its caller to the insn following this
+ one. Mark it as a return. */
+ irbb->jumpkind =3D Ijk_Ret; /* was flag_LK ? Ijk_Call : Ijk_Re=
t; */
irbb->next =3D mkexpr(ir_nia);
break;
=20
|