diff options
author | Richard Stallman <rms@gnu.org> | 1993-10-30 06:04:50 +0000 |
---|---|---|
committer | Richard Stallman <rms@gnu.org> | 1993-10-30 06:04:50 +0000 |
commit | 7b1a0c14e9b6c109263665bd078ba744714621c8 (patch) | |
tree | 5da85df1181d07b2557bb0524fa413eee77d176a | |
parent | b3487765223b73bf55e7aa72fb15c9c53fe85727 (diff) | |
download | gcc-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.c | 18 |
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; |