http://gcc.gnu.org/bugzilla/show_bug.cgi?id=53811
Uros Bizjak <ubizjak at gmail dot com> changed: What |Removed |Added ---------------------------------------------------------------------------- Status|UNCONFIRMED |ASSIGNED Last reconfirmed| |2012-07-01 AssignedTo|unassigned at gcc dot |ubizjak at gmail dot com |gnu.org | Target Milestone|--- |4.7.2 Ever Confirmed|0 |1 --- Comment #2 from Uros Bizjak <ubizjak at gmail dot com> 2012-07-01 15:40:04 UTC --- Can you please test following patch: --cut here-- Index: config/i386/i386.c =================================================================== --- config/i386/i386.c (revision 189101) +++ config/i386/i386.c (working copy) @@ -33056,6 +33056,13 @@ x86_output_mi_thunk (FILE *file, emit_jump_insn (gen_indirect_jump (fnaddr)); else { + if (!sibcall_insn_operand (fnaddr, Pmode)) + { + tmp = gen_rtx_REG (Pmode, R10_REG); + emit_move_insn (tmp, fnaddr); + fnaddr = tmp; + } + tmp = gen_rtx_MEM (QImode, fnaddr); tmp = gen_rtx_CALL (VOIDmode, tmp, const0_rtx); tmp = emit_call_insn (tmp); --cut here--