From: Richard Stallman Date: Thu, 26 Mar 1992 18:39:31 +0000 (+0000) Subject: *** empty log message *** X-Git-Url: https://git.libre-soc.org/?a=commitdiff_plain;h=84c0bb6359b5e8161866347491ea77c7d8cafbbf;p=gcc.git *** empty log message *** From-SVN: r591 --- diff --git a/gcc/config/sparc/sparc.c b/gcc/config/sparc/sparc.c index 0979e8007b6..f77fdca20ac 100644 --- a/gcc/config/sparc/sparc.c +++ b/gcc/config/sparc/sparc.c @@ -1832,6 +1832,20 @@ compute_frame_size (size, leaf_function) return actual_fsize; } +/* If this were a leaf function, how far would we have to reach + from the stack pointer to the last arg on the stack? + + If we don't know, return 4096 (i.e., "too far".) */ + +int +compute_last_arg_offset () +{ + if (GET_CODE (current_function_arg_offset_rtx) == CONST_INT) + return (compute_frame_size (get_frame_size (), 1) + + INTVAL (current_function_arg_offset_rtx)); + return 4096; +} + void output_function_prologue (file, size, leaf_function) FILE *file; @@ -1863,11 +1877,14 @@ output_function_prologue (file, size, leaf_function) } else { + /* The rest of the support for this case hasn't been implemented, + but FRAME_POINTER_REQUIRED is supposed to prevent it from arising, + by checking the frame size. */ + abort (); + /* Put pointer to parameters into %g4, and allocate frame space using result computed into %g1. actual_fsize used instead of apparent_fsize for reasons stated above. */ - abort (); - fprintf (file, "\tsethi %%hi(%d),%%g1\n\tor %%g1,%%lo(%d),%%g1\n", -actual_fsize, -actual_fsize); fprintf (file, "\tadd %%sp,64,%%g4\n\tadd %%sp,%%g1,%%sp\n");