diff options
-rw-r--r-- | gcc/ChangeLog | 6 | ||||
-rw-r--r-- | gcc/config/sh/sh.c | 4 |
2 files changed, 8 insertions, 2 deletions
diff --git a/gcc/ChangeLog b/gcc/ChangeLog index bce140b..3e11cb9 100644 --- a/gcc/ChangeLog +++ b/gcc/ChangeLog @@ -1,5 +1,11 @@ 2016-06-04 Oleg Endo <olegendo@gcc.gnu.org> + PR tree-optimization/52171 + * config/sh/sh.c (sh_use_by_pieces_infrastructure_p): Use + by_pieces_ninsns instead of move_by_pieces_ninsns. + +2016-06-04 Oleg Endo <olegendo@gcc.gnu.org> + * config/sh/sh.c (sh_print_operand_address): Don't use hardcoded 'r0' for reg+reg addressing mode. diff --git a/gcc/config/sh/sh.c b/gcc/config/sh/sh.c index 74327aa..0960a99 100644 --- a/gcc/config/sh/sh.c +++ b/gcc/config/sh/sh.c @@ -12506,11 +12506,11 @@ sh_use_by_pieces_infrastructure_p (unsigned HOST_WIDE_INT size, switch (op) { case MOVE_BY_PIECES: - return move_by_pieces_ninsns (size, align, MOVE_MAX_PIECES + 1) + return by_pieces_ninsns (size, align, MOVE_MAX_PIECES + 1, op) < (!speed_p ? 2 : (align >= 32) ? 16 : 2); case STORE_BY_PIECES: case SET_BY_PIECES: - return move_by_pieces_ninsns (size, align, STORE_MAX_PIECES + 1) + return by_pieces_ninsns (size, align, STORE_MAX_PIECES + 1, op) < (!speed_p ? 2 : (align >= 32) ? 16 : 2); default: return default_use_by_pieces_infrastructure_p (size, align, |