(choose_reload_regs): Handle SUBREG in reload_earlyclobber
authorRichard Stallman <rms@gnu.org>
Sat, 6 Mar 1993 20:09:57 +0000 (20:09 +0000)
committerRichard Stallman <rms@gnu.org>
Sat, 6 Mar 1993 20:09:57 +0000 (20:09 +0000)
when matching output reloads for setting reload_when_needed.

From-SVN: r3670

gcc/reload1.c

index cb3db797921d76e54eea6b82efdf6e2d5a9ce0e3..15edd0b257142363002965550e7fd5f4b923e237 100644 (file)
@@ -4187,8 +4187,14 @@ choose_reload_regs (insn, avoid_return_reg)
          {
            /* But earlyclobber operands must stay as RELOAD_OTHER.  */
            for (i = 0; i < n_earlyclobbers; i++)
-             if (rtx_equal_p (reload_out[j], reload_earlyclobbers[i]))
-               break;
+             {
+               if (GET_CODE (reload_earlyclobbers[i]) == SUBREG
+                   && reg_overlap_mentioned_for_reload_p (reload_out[j],
+                                   SUBREG_REG (reload_earlyclobbers[i])))
+                 break;
+               if (rtx_equal_p (reload_out[j], reload_earlyclobbers[i]))
+                 break;
+             }
            if (i == n_earlyclobbers)
              reload_when_needed[j] = RELOAD_FOR_OUTPUT;
          }