OSDN Git Service

(assign_parms): If parmreg is a CONCAT, handle the
authorrms <rms@138bc75d-0d04-0410-961f-82ee72b054a4>
Sat, 30 Oct 1993 06:04:50 +0000 (06:04 +0000)
committerrms <rms@138bc75d-0d04-0410-961f-82ee72b054a4>
Sat, 30 Oct 1993 06:04:50 +0000 (06:04 +0000)
case where stack_parm is 0.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@5940 138bc75d-0d04-0410-961f-82ee72b054a4

gcc/function.c

index ed6ac06..aa7149c 100644 (file)
@@ -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;