diff options
author | Richard Henderson <rth@gcc.gnu.org> | 2000-02-01 23:33:43 -0800 |
---|---|---|
committer | Richard Henderson <rth@gcc.gnu.org> | 2000-02-01 23:33:43 -0800 |
commit | ea2d416aac0d9e927f567c09617bd8c417b194a5 (patch) | |
tree | fd5a123e7bd728021810699cea7637b049889253 /gcc | |
parent | eca1bd08cfd81ef60cb5bf8f88f2500bd712b486 (diff) | |
download | gcc-ea2d416aac0d9e927f567c09617bd8c417b194a5.zip gcc-ea2d416aac0d9e927f567c09617bd8c417b194a5.tar.gz gcc-ea2d416aac0d9e927f567c09617bd8c417b194a5.tar.bz2 |
flow.c (mark_regs_live_at_end): Follow expand_function_end and replace BLKmode with DECL_RTL's mode.
* flow.c (mark_regs_live_at_end): Follow expand_function_end and
replace BLKmode with DECL_RTL's mode.
From-SVN: r31754
Diffstat (limited to 'gcc')
-rw-r--r-- | gcc/ChangeLog | 11 | ||||
-rw-r--r-- | gcc/flow.c | 14 |
2 files changed, 15 insertions, 10 deletions
diff --git a/gcc/ChangeLog b/gcc/ChangeLog index 9ffd2c0..480e69d 100644 --- a/gcc/ChangeLog +++ b/gcc/ChangeLog @@ -1,3 +1,8 @@ +2000-02-01 Richard Henderson <rth@cygnus.com> + + * flow.c (mark_regs_live_at_end): Follow expand_function_end and + replace BLKmode with DECL_RTL's mode. + 2000-02-01 Zack Weinberg <zack@wolery.cumb.org> * frame.c (find_fde): Convert for loop to do-while so compiler @@ -206,7 +211,7 @@ Tue Feb 1 00:57:40 2000 Hans-Peter Nilsson <hp@bitrange.com> 2000-01-29 Herman A.J. ten Brugge <Haj.Ten.Brugge@net.HCC.nl> - * c4x.h (INIT_TARGET_OPTABS): Add all missing local optab entries. + * c4x.h (INIT_TARGET_OPTABS): Add all missing local optab entries. * c4x.c: Define the optab rtx values. (c4x_add_gc_roots): Add the ggc roots for these optab rtx values. (c4x_emit_libcall): Use new optab rtx values. @@ -217,7 +222,7 @@ Tue Feb 1 00:57:40 2000 Hans-Peter Nilsson <hp@bitrange.com> 2000-01-29 Herman A.J. ten Brugge <Haj.Ten.Brugge@net.HCC.nl> - * c4x.c (c4x_output_ascii): Restrict line length of output when TI + * c4x.c (c4x_output_ascii): Restrict line length of output when TI syntax is used. (c4x_function_prologue): Use regnames intead of float_reg_names when TI syntax is used. @@ -309,7 +314,7 @@ Fri Jan 28 10:57:58 2000 Jason Eckhardt <jle@cygnus.com> 2000-01-27 Richard Henderson <rth@cygnus.com> - * alpha.md (trunctfsf2): New. + * alpha.md (trunctfsf2): New. 2000-01-27 Andrew Hobson <ahobson@eng.mindspring.net> @@ -2809,7 +2809,7 @@ static void mark_regs_live_at_end (set) regset set; { - tree type; + tree result, type; int i; /* If exiting needs the right stack value, consider the stack pointer @@ -2868,22 +2868,22 @@ mark_regs_live_at_end (set) /* Mark function return value. */ - type = TREE_TYPE (DECL_RESULT (current_function_decl)); + result = DECL_RESULT (current_function_decl); + type = TREE_TYPE (result); if (type != void_type_node) { rtx outgoing; - if (current_function_returns_struct - || current_function_returns_pcc_struct) - type = build_pointer_type (type); - + /* ??? Share this code with expand_function_end. */ #ifdef FUNCTION_OUTGOING_VALUE outgoing = FUNCTION_OUTGOING_VALUE (type, current_function_decl); #else outgoing = FUNCTION_VALUE (type, current_function_decl); #endif + /* If this is a BLKmode structure being returned in registers, + then use the mode computed in expand_return. */ if (GET_MODE (outgoing) == BLKmode) - PUT_MODE (outgoing, DECL_MODE (DECL_RESULT (current_function_decl))); + PUT_MODE (outgoing, GET_MODE (DECL_RTL (result))); if (GET_CODE (outgoing) == REG) mark_reg (set, outgoing); |