[Patch] The comparison in a compare exchange should not take place in VOIDmode
gcc/ * builtins.c (expand_builtin_atomic_compare_exchange): Call emit_cmp_and_jump_insns with the mode of target. From-SVN: r224148
This commit is contained in:
parent
edf1fd6def
commit
f8940d4a09
2 changed files with 7 additions and 1 deletions
|
@ -1,3 +1,8 @@
|
|||
2015-06-05 James Greenhalgh <james.greenhalgh@arm.com>
|
||||
|
||||
* builtins.c (expand_builtin_atomic_compare_exchange): Call
|
||||
emit_cmp_and_jump_insns with the mode of target.
|
||||
|
||||
2015-06-05 Venkataramanan Kumar <venkataramanan.kumar@amd.com>
|
||||
|
||||
* config/i386/sse.md (sse3_mwait): Swap the operand constriants.
|
||||
|
|
|
@ -5471,7 +5471,8 @@ expand_builtin_atomic_compare_exchange (machine_mode mode, tree exp,
|
|||
the normal case where EXPECT is totally private, i.e. a register. At
|
||||
which point the store can be unconditional. */
|
||||
label = gen_label_rtx ();
|
||||
emit_cmp_and_jump_insns (target, const0_rtx, NE, NULL, VOIDmode, 1, label);
|
||||
emit_cmp_and_jump_insns (target, const0_rtx, NE, NULL,
|
||||
GET_MODE (target), 1, label);
|
||||
emit_move_insn (expect, oldval);
|
||||
emit_label (label);
|
||||
|
||||
|
|
Loading…
Add table
Reference in a new issue