summaryrefslogtreecommitdiff
path: root/powerpc/Asm.v
diff options
context:
space:
mode:
authorGravatar xleroy <xleroy@fca1b0fc-160b-0410-b1d3-a4f43f01ea2e>2014-08-20 14:24:42 +0000
committerGravatar xleroy <xleroy@fca1b0fc-160b-0410-b1d3-a4f43f01ea2e>2014-08-20 14:24:42 +0000
commit626ea26cb58e50e7a42f90a6e23218d90df6dd5a (patch)
treee8214df04ff25411e435210beb8e9e188683b113 /powerpc/Asm.v
parente2fa973a4bfea5d47b0d9f41b8734a7b6744dc18 (diff)
Add builtins for load with reservation and conditional store.
git-svn-id: https://yquem.inria.fr/compcert/svn/compcert/trunk@2613 fca1b0fc-160b-0410-b1d3-a4f43f01ea2e
Diffstat (limited to 'powerpc/Asm.v')
-rw-r--r--powerpc/Asm.v4
1 files changed, 4 insertions, 0 deletions
diff --git a/powerpc/Asm.v b/powerpc/Asm.v
index fc8c2d9..18316fb 100644
--- a/powerpc/Asm.v
+++ b/powerpc/Asm.v
@@ -221,6 +221,7 @@ Inductive instruction : Type :=
| Plwzx: ireg -> ireg -> ireg -> instruction (**r same, with 2 index regs *)
| Plwz_a: ireg -> constant -> ireg -> instruction (**r load 32-bit quantity to int reg *)
| Plwzx_a: ireg -> ireg -> ireg -> instruction (**r same, with 2 index regs *)
+ | Plwarx: ireg -> ireg -> ireg -> instruction (**r load with reservation *)
| Plwbrx: ireg -> ireg -> ireg -> instruction (**r load 32-bit int and reverse endianness *)
| Pmfcr: ireg -> instruction (**r move condition register to reg *)
| Pmfcrbit: ireg -> crbit -> instruction (**r move condition bit to reg (pseudo) *)
@@ -263,6 +264,7 @@ Inductive instruction : Type :=
| Pstw_a: ireg -> constant -> ireg -> instruction (**r store 32-bit quantity from int reg *)
| Pstwx_a: ireg -> ireg -> ireg -> instruction (**r same, with 2 index regs *)
| Pstwbrx: ireg -> ireg -> ireg -> instruction (**r store 32-bit int with reverse endianness *)
+ | Pstwcx_: ireg -> ireg -> ireg -> instruction (**r store conditional *)
| Psubfc: ireg -> ireg -> ireg -> instruction (**r reversed integer subtraction *)
| Psubfe: ireg -> ireg -> ireg -> instruction (**r reversed integer subtraction with carry *)
| Psubfze: ireg -> ireg -> instruction (**r integer opposite with carry *)
@@ -869,12 +871,14 @@ Definition exec_instr (f: function) (i: instruction) (rs: regset) (m: mem) : out
| Pfrsqrte _ _
| Pfres _ _
| Pfsel _ _ _ _
+ | Plwarx _ _ _
| Plwbrx _ _ _
| Pisync
| Plhbrx _ _ _
| Plwzu _ _ _
| Pmfcr _
| Pstwbrx _ _ _
+ | Pstwcx_ _ _ _
| Pstfdu _ _ _
| Psthbrx _ _ _
| Pstwu _ _ _