[Bug target/58314] SH4 error: 'asm' operand requires impossible reload

olegendo at gcc dot gnu.org gcc-bugzilla@gcc.gnu.org
Tue Nov 26 11:49:00 GMT 2013


http://gcc.gnu.org/bugzilla/show_bug.cgi?id=58314

--- Comment #18 from Oleg Endo <olegendo at gcc dot gnu.org> ---
Author: olegendo
Date: Tue Nov 26 11:48:16 2013
New Revision: 205390

URL: http://gcc.gnu.org/viewcvs?rev=205390&root=gcc&view=rev
Log:
    PR target/58314
    PR target/50751
    * config/sh/sh.c (max_mov_insn_displacement, disp_addr_displacement):
    Prefix function names with 'sh_'.  Make them non-static.
    * config/sh/sh-protos.h (sh_disp_addr_displacement,
    sh_max_mov_insn_displacement): Add declarations.
    * config/sh/constraints.md (Q): Reject QImode.
    (Sdd): Use match_code "mem".
    (Snd): Fix erroneous matching of non-memory operands.
    * config/sh/predicates.md (short_displacement_mem_operand): New
    predicate.
    (general_movsrc_operand): Disallow PC relative QImode loads.
    * config/sh/sh.md (*mov<mode>_reg_reg): Remove it.
    (*movqi, *movhi): Merge both insns into...
    (*mov<mode>): ... this new insn.  Replace generic 'm' constraints with
    'Snd' and 'Sdd' constraints.  Calculate insn length dynamically based
    on the operand types.


Modified:
    trunk/gcc/ChangeLog
    trunk/gcc/config/sh/constraints.md
    trunk/gcc/config/sh/predicates.md
    trunk/gcc/config/sh/sh-protos.h
    trunk/gcc/config/sh/sh.c
    trunk/gcc/config/sh/sh.md



More information about the Gcc-bugs mailing list