Commit 5b2d9d90 by Bernd Schmidt Committed by Bernd Schmidt

pr-support.c (__gnu_unwind_24bit): Correct logic for the case where B3 isn't the return register.

	* config/c6x/pr-support.c (__gnu_unwind_24bit): Correct logic for the
	case where B3 isn't the return register.

From-SVN: r180434
parent 793ff12b
2011-10-25 Bernd Schmidt <bernds@codesourcery.com>
* config/c6x/pr-support.c (__gnu_unwind_24bit): Correct logic for the
case where B3 isn't the return register.
2011-10-25 Andreas Tobler <andreast@fgznet.ch>
* config/rs6000/t-freebsd: Add wildcard.
......
......@@ -273,6 +273,14 @@ __gnu_unwind_24bit (_Unwind_Context * context, _uw data, int compact)
_uw mask;
_uw *ptr;
_uw tmp;
int ret_reg = unwind_frame_regs[data & 0xf];
if (ret_reg != R_B3)
{
_Unwind_VRS_Get (context, _UVRSC_CORE, unwind_frame_regs[data & 0xf],
_UVRSD_UINT32, &tmp);
_Unwind_VRS_Set (context, _UVRSC_CORE, R_B3, _UVRSD_UINT32, &tmp);
}
mask = (data >> 4) & 0x1fff;
......@@ -291,8 +299,7 @@ __gnu_unwind_24bit (_Unwind_Context * context, _uw data, int compact)
else
pop_frame (context, mask, ptr, offset != 0x7f);
_Unwind_VRS_Get (context, _UVRSC_CORE, unwind_frame_regs[data & 0xf],
_UVRSD_UINT32, &tmp);
_Unwind_VRS_Get (context, _UVRSC_CORE, R_B3, _UVRSD_UINT32, &tmp);
_Unwind_VRS_Set (context, _UVRSC_CORE, R_PC, _UVRSD_UINT32, &tmp);
return _URC_OK;
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment