summaryrefslogtreecommitdiff
path: root/gcc/optabs.c
diff options
context:
space:
mode:
authormrs <mrs@138bc75d-0d04-0410-961f-82ee72b054a4>2014-02-10 18:07:31 +0000
committermrs <mrs@138bc75d-0d04-0410-961f-82ee72b054a4>2014-02-10 18:07:31 +0000
commitfe34354e72b674130ffcf5a67e2d0b3b7307383e (patch)
treeca6f19ee04949a3bcd2ab0374a056dcb46fc2056 /gcc/optabs.c
parent8b3716ff7532ddf9cb6f3ae6beac038506b70941 (diff)
parentbf62ed7307453c4f8d35c952fba2c2a5d990b1a4 (diff)
downloadgcc-fe34354e72b674130ffcf5a67e2d0b3b7307383e.tar.gz
Merge in trunk.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/branches/wide-int@207666 138bc75d-0d04-0410-961f-82ee72b054a4
Diffstat (limited to 'gcc/optabs.c')
-rw-r--r--gcc/optabs.c13
1 files changed, 7 insertions, 6 deletions
diff --git a/gcc/optabs.c b/gcc/optabs.c
index fcd2c7216b4..7794733ceab 100644
--- a/gcc/optabs.c
+++ b/gcc/optabs.c
@@ -7380,12 +7380,13 @@ expand_atomic_compare_and_swap (rtx *ptarget_bool, rtx *ptarget_oval,
create_integer_operand (&ops[5], is_weak);
create_integer_operand (&ops[6], succ_model);
create_integer_operand (&ops[7], fail_model);
- expand_insn (icode, 8, ops);
-
- /* Return success/failure. */
- target_bool = ops[0].value;
- target_oval = ops[1].value;
- goto success;
+ if (maybe_expand_insn (icode, 8, ops))
+ {
+ /* Return success/failure. */
+ target_bool = ops[0].value;
+ target_oval = ops[1].value;
+ goto success;
+ }
}
/* Otherwise fall back to the original __sync_val_compare_and_swap