Message ID | 4C69BD49.9040209@gnu.org |
---|---|
State | New |
Headers | show |
On 08/16/2010 03:35 PM, Paolo Bonzini wrote: > * optabs.c (expand_bool_compare_and_swap): Expand pending > pops before trying the optab. Ok. r~
On Mon, Aug 16, 2010 at 3:35 PM, Paolo Bonzini <bonzini@gnu.org> wrote: > This fixes a bug in expansion of sync_bool_compare_and_swap, where we were > relying on the CC value from the sync_compare_and_swap optab but clobbering > it before reading it. This is due to a do_pending_stack_adjust in > emit_store_flag_1. Fixed by doing the stack adjust before everything else. > > This is a regression from 4.4. The testcase is libgomp; > bootstrapped/regtested x86_64-pc-linux-gnu, checked the problematic file > using -march=i486 -mtune=i586. Ok for 4.5 and trunk? > Can you mention PR 45292 in ChangeLog? Thanks.
Index: optabs.c =================================================================== --- optabs.c (revision 162940) +++ optabs.c (working copy) @@ -6909,6 +6909,7 @@ expand_bool_compare_and_swap (rtx mem, r if (icode == CODE_FOR_nothing) return NULL_RTX; + do_pending_stack_adjust (); do { start_sequence ();