OSDN Git Service

* expr.c (expand_assigment): Remove duplicate conversions #ifdef
authorkenner <kenner@138bc75d-0d04-0410-961f-82ee72b054a4>
Fri, 12 Apr 2002 12:33:24 +0000 (12:33 +0000)
committerkenner <kenner@138bc75d-0d04-0410-961f-82ee72b054a4>
Fri, 12 Apr 2002 12:33:24 +0000 (12:33 +0000)
POINTERS_EXTEND_UNSIGNED.
(store_constructor, expand_expr, case COMPONENT_REF): Likewise.
(store_expr): Use TYPE_MODE (sizetype), not ptr_mode.

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

gcc/ChangeLog
gcc/expr.c

index d74aeeb..63fc94f 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 a9ca3f6..c5b1ece 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