OSDN Git Service

(assign_parms): When parm needs conversion on entry,
authorrms <rms@138bc75d-0d04-0410-961f-82ee72b054a4>
Sun, 5 Sep 1993 20:01:32 +0000 (20:01 +0000)
committerrms <rms@138bc75d-0d04-0410-961f-82ee72b054a4>
Sun, 5 Sep 1993 20:01:32 +0000 (20:01 +0000)
don't store it back in the slot where it was passed.

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

gcc/function.c

index 4a0425a..f58b472 100644 (file)
@@ -3145,6 +3145,13 @@ assign_parms (fndecl, second_time)
          stack_parm = 0;
       }
 
+      /* If parm was passed in memory, and we need to convert it on entry,
+        don't store it back in that same slot.  */
+      if (entry_parm != 0
+         && nominal_mode != BLKmode && nominal_mode != passed_mode)
+       stack_parm = 0;
+
+#if 0
       /* Now adjust STACK_PARM to the mode and precise location
         where this parameter should live during execution,
         if we discover that it must live in the stack during execution.
@@ -3174,6 +3181,7 @@ assign_parms (fndecl, second_time)
             mark it as such for cse and loop optimize.  */
          MEM_IN_STRUCT_P (stack_parm) = aggregate;
        }
+#endif /* 0 */
 
       /* ENTRY_PARM is an RTX for the parameter as it arrives,
         in the mode in which it arrives.