http://gcc.gnu.org/bugzilla/show_bug.cgi?id=58314
chrbr at gcc dot gnu.org changed: What |Removed |Added ---------------------------------------------------------------------------- Component|c |target --- Comment #1 from chrbr at gcc dot gnu.org --- Indeed, not directly related to the asm, we end-up generating a pattern (insn 195 194 64 2 (set (reg:HI 261 [ x ]) (reg:HI 0 r0)) pr58314.c:12 261 {*movhi_reg_reg} (nil)) with reg 261 that can't be reloaded and fails the constrain_operands in if (asm_noperands (PATTERN (insn)) >= 0) for (p = NEXT_INSN (prev); p != next; p = NEXT_INSN (p)) if (p != insn && INSN_P (p) && GET_CODE (PATTERN (p)) != USE && (recog_memoized (p) < 0 || (extract_insn (p), ! constrain_operands (1)))) { error_for_asm (insn, "%<asm%> operand requires " "impossible reload"); delete_insn (p); } } the pattern movhi_reg_reg not accepting memory reload. This is a regression this the constraints we removed from the *movhi patten (that accepted memory spills)