This is the mail archive of the gcc@gcc.gnu.org mailing list for the GCC 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: Build failure with 3.1 CVS on sparc-sun-solaris2.8


I just finished a bootstrap with regression tests with this patch.
Things seemed good---there were more failures in the gcc test library,
but these tests seem to have been added since the last time I ran the
regression tests.

Also, I did not get the same failure as before in compiling that large
program.  A cursory examination of the stack-pointer manipulation code
seems to indicate good code generation.

The test results are at

http://gcc.gnu.org/ml/gcc-testresults/2002-02/msg00148.html

Brad

> 
> On Wed, 6 Feb 2002, Brad Lucier wrote:
> > 0x1002aff90 in ggc_set_mark ()
> > (gdb) disassem
> > Dump of assembler code for function ggc_set_mark:
> > 0x1002aff90 <ggc_set_mark>:     save  %sp, -2240, %sp
> 
> That's not a reasonable stack frame.  Well, not for ggc_set_mark anyway.
> 
> Richard, taking the stack bias out of STARTING_FRAME_OFFSET causes
> compute_frame_size to get the wrong answer.
> 
> Perhaps this'd work?  (Untested; I've really got to get my sparc back
> online.)
> 
> 2002-02-06  Jeff Sturm  <jsturm@one-point.com>
> 
> 	* config/sparc/sparc.c (compute_frame_size): Don't correct frame
> 	offset for stack bias.
> 
> Index: sparc.c
> ===================================================================
> RCS file: /cvs/gcc/gcc/gcc/config/sparc/sparc.c,v
> retrieving revision 1.181
> diff -u -p -r1.181 sparc.c
> --- sparc.c     2002/02/04 18:16:06     1.181
> +++ sparc.c     2002/02/07 05:29:06
> @@ -3383,9 +3383,8 @@ compute_frame_size (size, leaf_function)
>      }
>    else
>      {
> -      /* We subtract STARTING_FRAME_OFFSET, remember it's negative.
> -         The stack bias (if any) is taken out to undo its effects.  */
> -      apparent_fsize = (size - STARTING_FRAME_OFFSET + SPARC_STACK_BIAS + 
> 7) & -8;
> +      /* We subtract STARTING_FRAME_OFFSET, remember it's negative. */
> +      apparent_fsize = (size - STARTING_FRAME_OFFSET + 7) & -8;
>        apparent_fsize += n_regs * 4;
>        actual_fsize = apparent_fsize + ((outgoing_args_size + 7) & -8);
>      }
>                                                                                
> 


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