This is the mail archive of the binutils@sourceware.org mailing list for the binutils 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: [needs GWP] Fix CFI directives for MIPS16


Daniel Jacobowitz <drow@false.org> writes:
> On Sun, Nov 23, 2008 at 05:09:41PM +0000, Richard Sandiford wrote:
>> I think it would be better if .cfi_startproc used ISA-encoded start
>> addresses, which is what we've traditionally used in pre-.cfi FDEs.
>
> You could probably guess this was coming from our earlier conversation
> about symbol size... but would you mind explaining your take on "better" a
> little?

No reasons other than the ones I gave in the original message:

  - As things stand, you need to define the user-visible FDE
    label in a nonobvious way in order to get correct code.
    Specifically, you need to write:

        $LFB1 = .
                .cfi_startproc

  - It stays compatible with GCC 4.3 & earlier FDEs.

> I think non-encoded addresses would make more sense; and FWIW that's
> what Thumb does.  If they're encoded, GDB can't reliably find the FDE
> for the first instruction of the function.  Execution mode should not
> matter to the DWARF consumer.

Well, .eh_frame isn't a standard debug-only section, it's designed to
be used at runtime too.  The choice seems less clear-cut in that case.
It might be useful to know at runtime whether a given FDE describes
MIPS16 or non-MIPS16 code.

I'll do it your way though.  GCC patch tested and imminent.

Richard


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