This is the mail archive of the gcc-bugs@gcc.gnu.org mailing list for the GCC project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

[Bug target/54089] [SH] Refactor shift patterns


https://gcc.gnu.org/bugzilla/show_bug.cgi?id=54089

--- Comment #44 from Oleg Endo <olegendo at gcc dot gnu.org> ---
Author: olegendo
Date: Mon Feb 22 13:33:31 2016
New Revision: 233601

URL: https://gcc.gnu.org/viewcvs?rev=233601&root=gcc&view=rev
Log:
gcc/
        PR target/69806
        PR target/54089
        * config/sh/sh.c (sh_lshrsi_clobbers_t_reg_p, sh_dynamicalize_shift_p):
        Handle negative shift counts.
        * config/sh/sh.md (ashlsi3, lshrsi3_n, lshrsi3_n_clobbers_t): Don't use
        force_reg on the shift constant.
        (lshrsi3): Likewise.  Expand into lshrsi3_n* instead of lshrsi3_d.
        (lshrsi3_d): Handle negative shift counts.

gcc/testsuite/
        PR target/69806
        PR target/54089
        * gcc.target/sh/pr54089-10.c: New.


Added:
    trunk/gcc/testsuite/gcc.target/sh/pr54089-10.c
Modified:
    trunk/gcc/ChangeLog
    trunk/gcc/config/sh/sh.c
    trunk/gcc/config/sh/sh.md
    trunk/gcc/testsuite/ChangeLog

Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]