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: [SH] Line numbers and delayed branches


Kaz Kojima wrote:
Andrew STUBBS <andrew.stubbs@st.com> wrote:
On re-reading the code I see that this problem relates to all types of branches, not just delayed branches.

Updated patch attached. (It's only the comment that has changed.)

This patch is OK. Thanks!

Thanks, committed.


Although the above patch fixes most cases of this problem, Joern has noted another similar example:

--------------------------------
        .file 1 "test.c"
        .text
        .loc 1 2
        nop
        .loc 1 1000
        bt 0f
        nop

        .align 9, 0
0:
--------------------------------

In this case the bt branches too far and so is converted to two branches. The line numbers are still wrong with the new patch.

$ ./gas/as-new -o test2.o test2.s
test2.s: Assembler messages:
test2.s:6: Warning: overflow in branch to L1; converted into longer instruction sequence
$ ./binutils/objdump -dl test2.o


test2.o: file format elf32-sh

Disassembly of section .text:

00000000 <.text>:
blah/test.c:2
   0:   00 09           nop
   2:   8b 01           bf      0x8
   4:   a0 fc           bra     0x200
blah/test.c:1000
   6:   00 09           nop
   8:   00 09           nop
        ...

I don't know how to fix this one. However, I'm not that worried about it either because there is a warning and, in any case, I don't think the compiler generates code like this (does it?)

Andrew Stubbs


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