aboutsummaryrefslogtreecommitdiff
path: root/gcc/function.c
diff options
context:
space:
mode:
authorDoug Evans <devans@cygnus.com>1997-10-29 06:54:49 +0000
committerJeff Law <law@gcc.gnu.org>1997-10-28 23:54:49 -0700
commitde957303924bc42d2ca1f0c2c910046958112d0d (patch)
treed3405dc4fcb4098d4fe963d62423ce89dc144675 /gcc/function.c
parent074c2cffc8f3230163407ca246b880f6f5347749 (diff)
downloadgcc-de957303924bc42d2ca1f0c2c910046958112d0d.zip
gcc-de957303924bc42d2ca1f0c2c910046958112d0d.tar.gz
gcc-de957303924bc42d2ca1f0c2c910046958112d0d.tar.bz2
function.c (assign_parms): Correct mode of stack_parm if entry_parm underwent a mode conversion.
* function.c (assign_parms): Correct mode of stack_parm if entry_parm underwent a mode conversion. From-SVN: r16228
Diffstat (limited to 'gcc/function.c')
-rw-r--r--gcc/function.c6
1 files changed, 6 insertions, 0 deletions
diff --git a/gcc/function.c b/gcc/function.c
index 61a72fe..057da55 100644
--- a/gcc/function.c
+++ b/gcc/function.c
@@ -4053,6 +4053,12 @@ assign_parms (fndecl, second_time)
push_to_sequence (conversion_insns);
entry_parm = convert_to_mode (nominal_mode, tempreg,
TREE_UNSIGNED (TREE_TYPE (parm)));
+ if (stack_parm)
+ {
+ /* ??? This may need a big-endian conversion on sparc64. */
+ stack_parm = change_address (stack_parm, nominal_mode,
+ NULL_RTX);
+ }
conversion_insns = get_insns ();
did_conversion = 1;
end_sequence ();