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
This commit is contained in:
parent
793ff12bf2
commit
5b2d9d9084
2 changed files with 14 additions and 2 deletions
|
@ -1,3 +1,8 @@
|
|||
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;
|
||||
|
|
Loading…
Add table
Reference in a new issue