aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorRichard Stallman <rms@gnu.org>1993-10-30 06:04:50 +0000
committerRichard Stallman <rms@gnu.org>1993-10-30 06:04:50 +0000
commit7b1a0c14e9b6c109263665bd078ba744714621c8 (patch)
tree5da85df1181d07b2557bb0524fa413eee77d176a
parentb3487765223b73bf55e7aa72fb15c9c53fe85727 (diff)
downloadgcc-7b1a0c14e9b6c109263665bd078ba744714621c8.zip
gcc-7b1a0c14e9b6c109263665bd078ba744714621c8.tar.gz
gcc-7b1a0c14e9b6c109263665bd078ba744714621c8.tar.bz2
(assign_parms): If parmreg is a CONCAT, handle the
case where stack_parm is 0. From-SVN: r5940
-rw-r--r--gcc/function.c18
1 files changed, 14 insertions, 4 deletions
diff --git a/gcc/function.c b/gcc/function.c
index ed6ac06..aa7149c 100644
--- a/gcc/function.c
+++ b/gcc/function.c
@@ -3489,10 +3489,20 @@ assign_parms (fndecl, second_time)
{
enum machine_mode submode = GET_MODE (XEXP (parmreg, 0));
- parm_reg_stack_loc[REGNO (gen_lowpart (submode, parmreg))]
- = gen_lowpart (submode, stack_parm);
- parm_reg_stack_loc[REGNO (gen_highpart (submode, parmreg))]
- = gen_highpart (submode, stack_parm);
+ if (stack_parm != 0)
+ {
+ parm_reg_stack_loc[REGNO (gen_lowpart (submode, parmreg))]
+ = gen_lowpart (submode, stack_parm);
+ parm_reg_stack_loc[REGNO (gen_highpart (submode, parmreg))]
+ = gen_highpart (submode, stack_parm);
+ }
+ else
+ {
+ parm_reg_stack_loc[REGNO (gen_lowpart (submode, parmreg))]
+ = 0;
+ parm_reg_stack_loc[REGNO (gen_highpart (submode, parmreg))]
+ = 0;
+ }
}
else
parm_reg_stack_loc[REGNO (parmreg)] = stack_parm;