expr.c (expand_assigment): Remove duplicate conversions #ifdef POINTERS_EXTEND_UNSIGNED.
authorRichard Kenner <kenner@vlsi1.ultra.nyu.edu>
Fri, 12 Apr 2002 12:33:24 +0000 (12:33 +0000)
committerRichard Kenner <kenner@gcc.gnu.org>
Fri, 12 Apr 2002 12:33:24 +0000 (08:33 -0400)
* expr.c (expand_assigment): Remove duplicate conversions #ifdef
POINTERS_EXTEND_UNSIGNED.
(store_constructor, expand_expr, case COMPONENT_REF): Likewise.
(store_expr): Use TYPE_MODE (sizetype), not ptr_mode.

From-SVN: r52223

gcc/ChangeLog
gcc/expr.c

index d74aeebc706a2a73437d34b35a097851bf023f74..63fc94ffff8e31774da7a72cfd142a314ccde418 100644 (file)
@@ -1,5 +1,10 @@
 Fri Apr 12 08:06:54 2002  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
 
+       * expr.c (expand_assigment): Remove duplicate conversions #ifdef
+       POINTERS_EXTEND_UNSIGNED.
+       (store_constructor, expand_expr, case COMPONENT_REF): Likewise.
+       (store_expr): Use TYPE_MODE (sizetype), not ptr_mode.
+
        * emit-rtl.c (widen_memory_access): Don't do anything if MEMOFFSET
        not specified.
 
index a9ca3f6613bf7e1097608df2de86faa6722d3b8b..c5b1eced98dc2c530aa28ce20f81bf985f3e0096 100644 (file)
@@ -3684,12 +3684,12 @@ expand_assignment (to, from, want_value, suggest_reg)
          if (GET_CODE (to_rtx) != MEM)
            abort ();
 
-         if (GET_MODE (offset_rtx) != ptr_mode)
-           offset_rtx = convert_to_mode (ptr_mode, offset_rtx, 0);
-
 #ifdef POINTERS_EXTEND_UNSIGNED
          if (GET_MODE (offset_rtx) != Pmode)
            offset_rtx = convert_memory_address (Pmode, offset_rtx);
+#else
+         if (GET_MODE (offset_rtx) != ptr_mode)
+           offset_rtx = convert_to_mode (ptr_mode, offset_rtx, 0);
 #endif
 
          /* A constant address in TO_RTX can have VOIDmode, we must not try
@@ -4180,7 +4180,7 @@ store_expr (exp, target, want_value)
                }
              else
                {
-                 size = expand_binop (ptr_mode, sub_optab, size,
+                 size = expand_binop (TYPE_MODE (sizetype), sub_optab, size,
                                       copy_size_rtx, NULL_RTX, 0,
                                       OPTAB_LIB_WIDEN);
 
@@ -4489,12 +4489,12 @@ store_constructor (exp, target, cleared, size)
              if (GET_CODE (to_rtx) != MEM)
                abort ();
 
-             if (GET_MODE (offset_rtx) != ptr_mode)
-               offset_rtx = convert_to_mode (ptr_mode, offset_rtx, 0);
-
 #ifdef POINTERS_EXTEND_UNSIGNED
              if (GET_MODE (offset_rtx) != Pmode)
                offset_rtx = convert_memory_address (Pmode, offset_rtx);
+#else
+             if (GET_MODE (offset_rtx) != ptr_mode)
+               offset_rtx = convert_to_mode (ptr_mode, offset_rtx, 0);
 #endif
 
              to_rtx = offset_address (to_rtx, offset_rtx,
@@ -6913,12 +6913,12 @@ expand_expr (exp, target, tmode, modifier)
            if (GET_CODE (op0) != MEM)
              abort ();
 
-           if (GET_MODE (offset_rtx) != ptr_mode)
-             offset_rtx = convert_to_mode (ptr_mode, offset_rtx, 0);
-
 #ifdef POINTERS_EXTEND_UNSIGNED
            if (GET_MODE (offset_rtx) != Pmode)
              offset_rtx = convert_memory_address (Pmode, offset_rtx);
+#else
+           if (GET_MODE (offset_rtx) != ptr_mode)
+             offset_rtx = convert_to_mode (ptr_mode, offset_rtx, 0);
 #endif
 
            /* A constant address in OP0 can have VOIDmode, we must not try