diff options
author | Bernhard Schommer <bernhardschommer@gmail.com> | 2015-09-09 09:47:57 +0200 |
---|---|---|
committer | Bernhard Schommer <bernhardschommer@gmail.com> | 2015-09-09 09:47:57 +0200 |
commit | 62277541b0ea1c687c64df79a543f776b9f58f29 (patch) | |
tree | 018b97b58a96f6c778db85ed16b382e295efee31 /powerpc/Asm.v | |
parent | fc4af0aa2601b290ec62dceef11599171f056770 (diff) | |
download | compcert-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.v | 2 |
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 _ _ _ |