This is the mail archive of the
binutils@sources.redhat.com
mailing list for the binutils project.
Re: [RFA] bfd/elf-eh-frame.c: return address column of CIE
- From: kaz Kojima <kkojima at rr dot iij4u dot or dot jp>
- To: hp at bitrange dot com
- Cc: jakub at redhat dot com, nickc at redhat dot com, binutils at sources dot redhat dot com
- Date: Sat, 24 Aug 2002 07:34:19 +0900
- Subject: Re: [RFA] bfd/elf-eh-frame.c: return address column of CIE
- References: <Pine.BSF.4.30.0208231531310.17719-100000@dair.pair.com>
Hans-Peter Nilsson <hp@bitrange.com> wrote:
> On Fri, 23 Aug 2002, Jakub Jelinek wrote:
>
>> On Fri, Aug 23, 2002 at 07:42:45AM +0100, Nick Clifton wrote:
>> > So - for DWARF2 we read a ubyte and for DWARF3 we read a LEB128 ?
>>
>> Well, unless the ubyte is >= 128, it is the same.
>> Unfortunately there are 3 broken ports - frv, sh (non-SH5) and mmix
>> which use bigger values (well, mmix even uses 259 so it is incorrectly
>> truncated anyway).
>
> Wrong, for MMIX it's (259 - 224) = 15 mainly for this reason,
> fitting the return address column into a byte. See
> mmix_dbx_register_number. (Suggest recheck your statement about
> the other targets too: I didn't check.) That number absolutely
> has to fit into a byte. There should be a gcc #ifdef
> ENABLE_CHECKING aborting test in dwarf2out.c. Things go very
> bad if it doesn't fit. I don't remember, but it'd probably be
> visible at least in gcc test results...
Current GCC uses 146 for SH and 18 for SHmedia. But the first
146 is not a DWARF/DBX register number. It should be 17, the DBX
register number of the PR register of SH. I've sent a patch for
this to the gcc-patches mailing list.
kaz