From: Matthew Fortune Date: Tue, 21 Feb 2017 13:29:07 +0000 (+0000) Subject: Revert r245598 X-Git-Url: https://git.libre-soc.org/?a=commitdiff_plain;h=549a6181eca1e7c5b31eb8e51b9d0501e852848f;p=gcc.git Revert r245598 gcc/ PR target/78660 Revert: 2017-02-20 Matthew Fortune * lra-constraints.c (curr_insn_transform): Handle WORD_REGISTER_OPERATIONS requirements when reloading SUBREGs. From-SVN: r245626 --- diff --git a/gcc/ChangeLog b/gcc/ChangeLog index d3eaaf5b575..82e8e8c364c 100644 --- a/gcc/ChangeLog +++ b/gcc/ChangeLog @@ -1,3 +1,12 @@ +2017-02-21 Matthew Fortune + + PR target/78660 + Revert: + 2017-02-20 Matthew Fortune + + * lra-constraints.c (curr_insn_transform): Handle + WORD_REGISTER_OPERATIONS requirements when reloading SUBREGs. + 2017-02-21 Martin Liska * config/i386/i386.opt: Replace -masm-dialect with -masm. diff --git a/gcc/lra-constraints.c b/gcc/lra-constraints.c index bd5fbcd7dea..35539a9cd99 100644 --- a/gcc/lra-constraints.c +++ b/gcc/lra-constraints.c @@ -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