Revert r245598
authorMatthew Fortune <matthew.fortune@imgtec.com>
Tue, 21 Feb 2017 13:29:07 +0000 (13:29 +0000)
committerMatthew Fortune <mpf@gcc.gnu.org>
Tue, 21 Feb 2017 13:29:07 +0000 (13:29 +0000)
gcc/
PR target/78660
Revert:
2017-02-20  Matthew Fortune  <matthew.fortune@imgtec.com>

* lra-constraints.c (curr_insn_transform): Handle
WORD_REGISTER_OPERATIONS requirements when reloading SUBREGs.

From-SVN: r245626

gcc/ChangeLog
gcc/lra-constraints.c

index d3eaaf5b575fb01c1bb7aa7a0b051d5913706aff..82e8e8c364c180b0739d97dbde56f2a6e1ac8af9 100644 (file)
@@ -1,3 +1,12 @@
+2017-02-21  Matthew Fortune  <matthew.fortune@imgtec.com>
+
+       PR target/78660
+       Revert:
+       2017-02-20  Matthew Fortune  <matthew.fortune@imgtec.com>
+
+       * lra-constraints.c (curr_insn_transform): Handle
+       WORD_REGISTER_OPERATIONS requirements when reloading SUBREGs.
+
 2017-02-21  Martin Liska  <mliska@suse.cz>
 
        * config/i386/i386.opt: Replace -masm-dialect with -masm.
index bd5fbcd7dea5bc9150652b78c175a397b4065371..35539a9cd994b4d7f800f435f8a8e2b7d446332a 100644 (file)
@@ -4131,15 +4131,7 @@ curr_insn_transform (bool check_only_p)
                          && (goal_alt[i] == NO_REGS
                              || (simplify_subreg_regno
                                  (ira_class_hard_regs[goal_alt[i]][0],
-                                  GET_MODE (reg), byte, mode) >= 0)))
-                     /* WORD_REGISTER_OPERATIONS targets require the register
-                        to be reloaded when the outer mode is strictly
-                        narrower than the inner mode.  Note: It may be
-                        necessary to always reload the inner mode here but it
-                        requires further investigation.  */
-                     || (GET_MODE_PRECISION (mode)
-                         < GET_MODE_PRECISION (GET_MODE (reg))
-                         && WORD_REGISTER_OPERATIONS)))
+                                  GET_MODE (reg), byte, mode) >= 0)))))
                {
                  /* An OP_INOUT is required when reloading a subreg of a
                     mode wider than a word to ensure that data beyond the