OSDN Git Service

(push_secondary_reload): Do strip paradoxical SUBREG
authorwilson <wilson@138bc75d-0d04-0410-961f-82ee72b054a4>
Wed, 25 Sep 1996 00:44:04 +0000 (00:44 +0000)
committerwilson <wilson@138bc75d-0d04-0410-961f-82ee72b054a4>
Wed, 25 Sep 1996 00:44:04 +0000 (00:44 +0000)
even if reload_class is CLASS_CANNOT_CHANGE_SIZE.  Change reload_mode
to mode in SECONDARY_MEMORY_NEEDED and get_secondary_mem calls.

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

gcc/reload.c

index 7211640..5f72b14 100644 (file)
@@ -361,9 +361,6 @@ push_secondary_reload (in_p, x, opnum, optional, reload_class, reload_mode,
   /* If X is a paradoxical SUBREG, use the inner value to determine both the
      mode and object being reloaded.  */
   if (GET_CODE (x) == SUBREG
-#ifdef CLASS_CANNOT_CHANGE_SIZE
-      && reload_class != CLASS_CANNOT_CHANGE_SIZE
-#endif
       && (GET_MODE_SIZE (GET_MODE (x))
          > GET_MODE_SIZE (GET_MODE (SUBREG_REG (x)))))
     {
@@ -593,12 +590,12 @@ push_secondary_reload (in_p, x, opnum, optional, reload_class, reload_mode,
         set it up now.  */
 
       if (in_p && icode == CODE_FOR_nothing
-         && SECONDARY_MEMORY_NEEDED (class, reload_class, reload_mode))
-       get_secondary_mem (x, reload_mode, opnum, type);
+         && SECONDARY_MEMORY_NEEDED (class, reload_class, mode))
+       get_secondary_mem (x, mode, opnum, type);
 
       if (! in_p && icode == CODE_FOR_nothing
-         && SECONDARY_MEMORY_NEEDED (reload_class, class, reload_mode))
-       get_secondary_mem (x, reload_mode, opnum, type);
+         && SECONDARY_MEMORY_NEEDED (reload_class, class, mode))
+       get_secondary_mem (x, mode, opnum, type);
 #endif
     }