This is the mail archive of the gdb-patches@sourceware.org mailing list for the GDB 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,Testsuite] Add .align 2 for labels on Thumb


On Thu, Aug 12, 2010 at 07:49:08PM +0800, Yao Qi wrote:
> In original test case, breakpoint is set on insn nop, while main
> branches to insn push, so breakpoint is not hit.
> 
> 0000000a <func_loopfb_start>:
>    a:   bf00            nop 
> 
> 0000000c <func_loopfb>:
>    c:   b480            push    {r7}
> 
> I thought this nop is generated for alignment, so I added '.align 2'
> for label func_loopfb_start to force it to be equal to func_loopfb.  I
> make a mistake here.
> 
> I don't know why nop is generated on label func_loopfb_start, and once
> '.align 2' is added, nop is *not* generated, so failures go away by
> accident.

Can you use func_loopfb instead of func_loopfb_start in the .S file?
Or, can you define func_loopfb_start as asm ("func_loopfb_start =
func_loopfb")?

A third option is to address Mark's concern by using ".p2align 4"; I
believe that is 16-byte alignment on all platforms gas supports, and
this test probably requires gas in practice already.

The existing code is not correct, for the reason you've found; the
compiler typically uses .align or .p2align at the start of a function.

-- 
Daniel Jacobowitz
CodeSourcery


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