diff --git a/gcc/ChangeLog b/gcc/ChangeLog index 82c95ac1cae..c938cfc7707 100644 --- a/gcc/ChangeLog +++ b/gcc/ChangeLog @@ -1,3 +1,12 @@ +Thu May 20 10:00:42 1999 Stephen L Moshier + + * Makefile.in (GCC_FOR_TARGET): Add -I$(build_tooldir)/include. + +Thu May 20 09:58:57 1999 Jan Hubicka + + * function.c (assign_stack_local): Align stack slot propertly. + (assign_outer_stack_local): Likewise. + Thu May 20 10:38:43 1999 Mark Mitchell * expr.h (lang_expand_constant): Declare. diff --git a/gcc/Makefile.in b/gcc/Makefile.in index 36e9261ccb9..20b832a4cec 100644 --- a/gcc/Makefile.in +++ b/gcc/Makefile.in @@ -166,7 +166,7 @@ INSTALL_ASSERT_H = install-assert-h # The GCC to use for compiling libgcc2.a, enquire, and libgcc1-test. # Usually the one we just built. # Don't use this as a dependency--use $(GCC_PASSES) or $(GCC_PARTS). -GCC_FOR_TARGET = ./xgcc -B./ -B$(build_tooldir)/bin/ +GCC_FOR_TARGET = ./xgcc -B./ -B$(build_tooldir)/bin/ -I$(build_tooldir)/include # This is used instead of ALL_CFLAGS when compiling with GCC_FOR_TARGET. # It omits XCFLAGS, and specifies -B./. diff --git a/gcc/function.c b/gcc/function.c index 0937844d812..f41982ec363 100644 --- a/gcc/function.c +++ b/gcc/function.c @@ -786,6 +786,10 @@ assign_stack_local (mode, size, align) else alignment = align / BITS_PER_UNIT; +#ifdef FRAME_GROWS_DOWNWARD + frame_offset -= size; +#endif + /* Round frame offset to that alignment. We must be careful here, since FRAME_OFFSET might be negative and division with a negative dividend isn't as well defined as we might @@ -802,10 +806,6 @@ assign_stack_local (mode, size, align) if (BYTES_BIG_ENDIAN && mode != BLKmode) bigend_correction = size - GET_MODE_SIZE (mode); -#ifdef FRAME_GROWS_DOWNWARD - frame_offset -= size; -#endif - /* If we have already instantiated virtual registers, return the actual address relative to the frame pointer. */ if (virtuals_instantiated) @@ -871,6 +871,10 @@ assign_outer_stack_local (mode, size, align, function) else alignment = align / BITS_PER_UNIT; +#ifdef FRAME_GROWS_DOWNWARD + function->frame_offset -= size; +#endif + /* Round frame offset to that alignment. */ #ifdef FRAME_GROWS_DOWNWARD function->frame_offset = FLOOR_ROUND (function->frame_offset, alignment); @@ -883,9 +887,6 @@ assign_outer_stack_local (mode, size, align, function) if (BYTES_BIG_ENDIAN && mode != BLKmode) bigend_correction = size - GET_MODE_SIZE (mode); -#ifdef FRAME_GROWS_DOWNWARD - function->frame_offset -= size; -#endif addr = plus_constant (virtual_stack_vars_rtx, function->frame_offset + bigend_correction); #ifndef FRAME_GROWS_DOWNWARD