aboutsummaryrefslogtreecommitdiffstats
path: root/powerpc/Asm.v
diff options
context:
space:
mode:
authorBernhard Schommer <bernhardschommer@gmail.com>2015-09-09 09:47:57 +0200
committerBernhard Schommer <bernhardschommer@gmail.com>2015-09-09 09:47:57 +0200
commit62277541b0ea1c687c64df79a543f776b9f58f29 (patch)
tree018b97b58a96f6c778db85ed16b382e295efee31 /powerpc/Asm.v
parentfc4af0aa2601b290ec62dceef11599171f056770 (diff)
downloadcompcert-62277541b0ea1c687c64df79a543f776b9f58f29.tar.gz
compcert-62277541b0ea1c687c64df79a543f776b9f58f29.zip
Added an builtin for the atomic exchange operation.
The new builtin __builtin_atomic_exchange(int *a, int *b, int *c) stores *b in *a and sets *c to the old value of *a.
Diffstat (limited to 'powerpc/Asm.v')
-rw-r--r--powerpc/Asm.v2
1 files changed, 2 insertions, 0 deletions
diff --git a/powerpc/Asm.v b/powerpc/Asm.v
index 3c7bdd15..66bb4607 100644
--- a/powerpc/Asm.v
+++ b/powerpc/Asm.v
@@ -153,6 +153,7 @@ Inductive instruction : Type :=
| Pbdnz: label -> instruction (**r decrement CTR and branch if not zero *)
| Pbf: crbit -> label -> instruction (**r branch if false *)
| Pbl: ident -> signature -> instruction (**r branch and link *)
+ | Pbne: label -> instruction (**r branch not equal *)
| Pbs: ident -> signature -> instruction (**r branch to symbol *)
| Pblr: instruction (**r branch to contents of register LR *)
| Pbt: crbit -> label -> instruction (**r branch if true *)
@@ -873,6 +874,7 @@ Definition exec_instr (f: function) (i: instruction) (rs: regset) (m: mem) : out
(** The following instructions and directives are not generated
directly by [Asmgen], so we do not model them. *)
| Pbdnz _
+ | Pbne _
| Pcmpb _ _ _
| Pcntlzw _ _
| Pcreqv _ _ _