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: Improve end check on rs6000 prologue analyzer


> Date: Tue, 17 Oct 2006 17:21:14 -0400
> From: Daniel Jacobowitz <drow@false.org>
> 
> On Sat, Sep 30, 2006 at 09:32:00PM +0200, Mark Kettenis wrote:
> > > Date: Fri, 29 Sep 2006 17:37:26 -0400
> > > From: Daniel Jacobowitz <drow@false.org>
> > > 
> > > Any comments on this patch?  Otherwise, I'll plan to commit it in a few
> > > days.
> > 
> > I get quite a few new regressions on OpenBSD/powerpc.  Please don't
> > commit this.
> 
> Hi Mark,
> 
> Do you think you could try out this one, instead?  I worked out what
> was going wrong for me: sign extension.  I was testing a 64-bit GDB
> binary on 32-bit programs, which caused (op >> 22) == 0x20f to fail;
> when it didn't fail, on a 32-bit host, that check allows any load into
> r31 to be considered part of the prologue.  But it was advancing so far
> that for small functions, the breakpoint was placed after the restore
> of r31 in the epilogue - much too far.
> 
> This patch fixes the original bug, fixes the sign extension problem,
> and generally overhauls the prologue skipping (as opposed to scanning)
> to work more like MIPS's.  It tests with no regressions on
> powerpc-linux, using a 32-bit binary this time.

I'll try to check it out tomorrow night.  Time for me to go to zzz
now...

> 2006-10-17  Daniel Jacobowitz  <dan@codesourcery.com>
> 
> 	* rs6000-tdep.c (rs6000_skip_prologue): Use skip_prologue_using_sal.
> 	(rs6000_in_function_epilogue_p): Use extract_unsigned_integer.
> 	(refine_prologue_limit): Delete.
> 	(skip_prologue): Don't call it.  Use extract_unsigned_integer.
> 	Assume lim_pc is set.  Correct check for incomplete prologues.
> 
> 2006-10-17  Daniel Jacobowitz  <dan@codesourcery.com>
> 
> 	* gdb.arch/powerpc-prologue.c (optimized_1_marker, gdb2029_marker)
> 	(optimized_1): New.
> 	(main): Call optimized_1.
> 	(gdb2029): Correct typos.  Call gdb2029_marker.
> 	* gdb.arch/powerpc-prologue.exp: Run new test.  Use a breakpoint
> 	for gdb2029.


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