On Thu, Aug 12, 2010 at 08:34:39AM -0400, Daniel Jacobowitz wrote: > 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 : > > a: bf00 nop > > > > 0000000c : > > 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. Yeah, update my patch by replacing '.align 2' with '.p2align 4'. Is that OK? > > 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. I see, thanks. -- Yao Qi CodeSourcery yao@codesourcery.com (650) 331-3385 x739