[Bug target/54121] [4.7/4.8 regression] ICE at extract_insn, at recog.c:2123 with -fprofile-generate

jakub at gcc dot gnu.org gcc-bugzilla@gcc.gnu.org
Tue Dec 11 11:51:00 GMT 2012


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

--- Comment #5 from Jakub Jelinek <jakub at gcc dot gnu.org> 2012-12-11 11:51:29 UTC ---
(In reply to comment #4)
> Jakub, I presume it's an oversight that the combined tldo_add + store patterns
> have a "=r" constraint on the source operand:
> 
> (define_insn "*tldo_stb_sp32"
>   [(set (mem:QI (plus:SI (unspec:SI [(match_operand:SI 2 "register_operand"
> "r")
>                      (match_operand 3 "tld_symbolic_operand" "")]
>                     UNSPEC_TLSLDO)
>              (match_operand:SI 1 "register_operand" "r")))
>     (match_operand:QI 0 "register_operand" "=r"))]
>   "TARGET_TLS && TARGET_ARCH32"
>   "stb\t%0, [%1 + %2], %%tldo_add(%3)"
>   [(set_attr "type" "store")])

Obviously.  Please remove the = from all the tldo_st*_sp* patterns.  I bet I've
created them from the tldo_ld* patterns initially by swapping the operands.



More information about the Gcc-bugs mailing list