aboutsummaryrefslogtreecommitdiffstats
path: root/powerpc/Asm.v
diff options
context:
space:
mode:
authorMichael Schmidt <github@mschmidt.me>2018-04-19 12:57:53 +0200
committerBernhard Schommer <bernhardschommer@gmail.com>2018-04-27 14:28:14 +0200
commit5344a75a6a8d09006dbf227cc9717aafd239da20 (patch)
treed93f6fc3ea006d42de2ef8cfbd61fe34bd0c0680 /powerpc/Asm.v
parent2aa105b546748cc0dd2fa65d4e9b948395a412eb (diff)
downloadcompcert-kvx-5344a75a6a8d09006dbf227cc9717aafd239da20.tar.gz
compcert-kvx-5344a75a6a8d09006dbf227cc9717aafd239da20.zip
Add new powerpc builtins.
New builtin for 64-bit load/store with byte reversal and 64-bit mul-high. Bug 23541
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 746a610b..ff580f01 100644
--- a/powerpc/Asm.v
+++ b/powerpc/Asm.v
@@ -239,6 +239,7 @@ Inductive instruction : Type :=
| Pld: ireg -> constant -> ireg -> instruction (**r load 64-bit int (PPC64) *)
| Pldx: ireg -> ireg -> ireg -> instruction (**r same, with 2 index regs *)
| Pld_a: ireg -> constant -> ireg -> instruction (**r load 64-bit quantity to int reg (PPC64) *)
+ | Pldbrx: ireg -> ireg -> ireg -> instruction (**r load 64-bit int and reverse endianness (PPC64) *)
| Pldx_a: ireg -> ireg -> ireg -> instruction (**r same, with 2 index regs *)
| Plfd: freg -> constant -> ireg -> instruction (**r load 64-bit float *)
| Plfdx: freg -> ireg -> ireg -> instruction (**r same, with 2 index regs *)
@@ -307,6 +308,7 @@ Inductive instruction : Type :=
| Pstbx: ireg -> ireg -> ireg -> instruction (**r same, with 2 index regs *)
| Pstd: ireg -> constant -> ireg -> instruction (**r store 64-bit integer (PPC64) *)
| Pstdx: ireg -> ireg -> ireg -> instruction (**r same, with 2 index regs (PPC64) *)
+ | Pstdbrx: ireg -> ireg -> ireg -> instruction (**r store 64-bit int with reverse endianness (PPC64) *)
| Pstdu: ireg -> constant -> ireg -> instruction (**r store 64-bit integer with update (PPC64) *)
| Pstd_a: ireg -> constant -> ireg -> instruction (**r store 64-bit quantity from int reg (PPC64) *)
| Pstdx_a: ireg -> ireg -> ireg -> instruction (**r same, with 2 index regs (PPC64) *)
@@ -1077,6 +1079,7 @@ Definition exec_instr (f: function) (i: instruction) (rs: regset) (m: mem) : out
| Picbi _ _
| Picbtls _ _ _
| Pisync
+ | Pldbrx _ _ _
| Plwsync
| Plhbrx _ _ _
| Plwzu _ _ _
@@ -1086,6 +1089,7 @@ Definition exec_instr (f: function) (i: instruction) (rs: regset) (m: mem) : out
| Pmtspr _ _
| Prldicl _ _ _ _
| Prldimi _ _ _ _
+ | Pstdbrx _ _ _
| Pstdu _ _ _
| Pstwbrx _ _ _
| Pstwcx_ _ _ _