This is the mail archive of the gcc-patches@gcc.gnu.org mailing list for the GCC project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

Re: PATCH: PR other/48007: Unwind library doesn't work with UNITS_PER_WORD > sizeof (void *)


On Sun, Mar 6, 2011 at 3:23 PM, Richard Guenther
<richard.guenther@gmail.com> wrote:
> On Sun, Mar 6, 2011 at 10:28 PM, H.J. Lu <hjl.tools@gmail.com> wrote:
>> On Sun, Mar 6, 2011 at 1:15 PM, Andrew Pinski <pinskia@gmail.com> wrote:
>>> On Sun, Mar 6, 2011 at 9:18 AM, H.J. Lu <hongjiu.lu@intel.com> wrote:
>>>> Hi,
>>>>
>>>> We shouldn't save call frame hard registers as "void *". ?This patch
>>>> changes the unwind library to save call frame hard registers as
>>>> _Unwind_Word. ?OK for 4.7?
>>>
>>> I think this will break the ABI for the MIPS N32 ABI. ?Not to mention
>>> the MIPS N32 ABI works fine with the unwinding part this way. ?Does
>>> someone use the unwinding library to look at the registers in previous
>>> stack frames?
>>
>> It may be psABI/implementation specific. ?X32 glibc force unwind calls
>> _Unwind_SetGRValue to get a 64bit register value.
>
> So fix it on that side?
>

How? One function in question is

/* Overwrite the saved value for register INDEX in CONTEXT with VAL.  */

static inline void
_Unwind_SetGRValue (struct _Unwind_Context *context, int index,
                    _Unwind_Word val)


Are you saying it shouldn't be called if UNITS_PER_WORD > sizeof (void *)?

-- 
H.J.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]