http://gcc.gnu.org/bugzilla/show_bug.cgi?id=55929
--- Comment #3 from Uros Bizjak <ubizjak at gmail dot com> 2013-01-10 17:30:36 UTC --- Patch in testing: Index: i386.md =================================================================== --- i386.md (revision 195063) +++ i386.md (working copy) @@ -18018,7 +18018,10 @@ { rtx label = gen_label_rtx (); - operands[1] = force_reg (SImode, constm1_rtx); + /* xbegin is emitted as jump_insn, so reload won't be able + to reload its operand. Force the value into AX hard register. */ + operands[1] = gen_rtx_REG (SImode, AX_REG); + emit_move_insn (operands[1], constm1_rtx); emit_jump_insn (gen_xbegin_1 (operands[1], label));