aboutsummaryrefslogtreecommitdiffstats
path: root/powerpc/Machregs.v
diff options
context:
space:
mode:
Diffstat (limited to 'powerpc/Machregs.v')
-rw-r--r--powerpc/Machregs.v2
1 files changed, 2 insertions, 0 deletions
diff --git a/powerpc/Machregs.v b/powerpc/Machregs.v
index 4391d5a8..1699211d 100644
--- a/powerpc/Machregs.v
+++ b/powerpc/Machregs.v
@@ -162,12 +162,14 @@ Fixpoint destroyed_by_clobber (cl: list string): list mreg :=
Definition builtin_atomic_exchange := ident_of_string "__builtin_atomic_exchange".
Definition builtin_sync_and_fetch := ident_of_string "__builtin_sync_and_fetch".
+Definition builtin_atomic_compare_exchange := ident_of_string "__builtin_atomic_compare_exchange".
Definition destroyed_by_builtin (ef: external_function): list mreg :=
match ef with
| EF_builtin id sg =>
if ident_eq id builtin_atomic_exchange then R10::R11::F13:: nil
else if ident_eq id builtin_sync_and_fetch then R11::F13::nil
+ else if ident_eq id builtin_atomic_compare_exchange then R10::R11::R12::F13:: nil
else F13 :: nil
| EF_vload _ => R11 :: nil
| EF_vstore Mint64 => R10 :: R11 :: R12 :: nil