calls.c (expand_call): Convert structure_value_addr to Pmode if necessary.
authorSteve Ellcey <sje@cup.hp.com>
Tue, 10 Jun 2003 17:11:22 +0000 (17:11 +0000)
committerSteve Ellcey <sje@gcc.gnu.org>
Tue, 10 Jun 2003 17:11:22 +0000 (17:11 +0000)
* calls.c (expand_call): Convert structure_value_addr to Pmode if
necessary.

From-SVN: r67716

gcc/ChangeLog
gcc/calls.c

index 5c68a993de49efd5035483fa693b5635d42702b5..195048fe32b655e64d718bd4462ca857e4d1ad5b 100644 (file)
@@ -1,3 +1,8 @@
+2003-06-10  Steve Ellcey  <sje@cup.hp.com>
+
+       * calls.c (expand_call): Convert structure_value_addr to Pmode if
+       necessary.
+
 2003-06-10  Andrew Haley  <aph@redhat.com>
 
        * langhooks-def.h (LANG_HOOKS_DECL_OK_FOR_SIBCALL): New.
index a72bba6e33f6d93a0408d81f5a413c8a3c1cde5a..ad18318627baae4fb51c13c24f571c525817d8d4 100644 (file)
@@ -3049,6 +3049,11 @@ expand_call (exp, target, ignore)
         structure value.  */
       if (pass != 0 && structure_value_addr && ! structure_value_addr_parm)
        {
+#ifdef POINTERS_EXTEND_UNSIGNED
+         if (GET_MODE (structure_value_addr) != Pmode)
+           structure_value_addr = convert_memory_address
+                                       (Pmode, structure_value_addr);
+#endif
          emit_move_insn (struct_value_rtx,
                          force_reg (Pmode,
                                     force_operand (structure_value_addr,