aboutsummaryrefslogtreecommitdiffstats
path: root/kvx
diff options
context:
space:
mode:
authorDavid Monniaux <David.Monniaux@univ-grenoble-alpes.fr>2022-02-14 16:19:17 +0100
committerDavid Monniaux <David.Monniaux@univ-grenoble-alpes.fr>2022-02-14 16:19:17 +0100
commitfc384f172b72f90c8de52ec846344b7ffda76070 (patch)
tree69c5685aa56d066a8e1a9b1f3e9e43b4153ed867 /kvx
parentf6686d81092ccaaf3a22b4e34aecc7c5895b08ba (diff)
downloadcompcert-kvx-fc384f172b72f90c8de52ec846344b7ffda76070.tar.gz
compcert-kvx-fc384f172b72f90c8de52ec846344b7ffda76070.zip
compiled absdiff
Diffstat (limited to 'kvx')
-rw-r--r--kvx/Asmblockgen.v14
-rw-r--r--kvx/Asmvliw.v2
2 files changed, 14 insertions, 2 deletions
diff --git a/kvx/Asmblockgen.v b/kvx/Asmblockgen.v
index ab827b1c..fd41dfdd 100644
--- a/kvx/Asmblockgen.v
+++ b/kvx/Asmblockgen.v
@@ -535,6 +535,12 @@ Definition transl_op
| Oornimm n, a1 :: nil =>
do rd <- ireg_of res; do rs <- ireg_of a1;
OK (Porniw rd rs n ::i k)
+ | Oabsdiff, a1 :: a2 :: nil =>
+ do rd <- ireg_of res; do rs1 <- ireg_of a1; do rs2 <- ireg_of a2;
+ OK (Pabdw rd rs1 rs2 ::i k)
+ | Oabsdiffimm n, a1 :: nil =>
+ do rd <- ireg_of res; do rs <- ireg_of a1;
+ OK (Pabdiw rd rs n ::i k)
| Oshl, a1 :: a2 :: nil =>
do rd <- ireg_of res; do rs1 <- ireg_of a1; do rs2 <- ireg_of a2;
OK (Psllw rd rs1 rs2 ::i k)
@@ -672,6 +678,12 @@ Definition transl_op
| Oornlimm n, a1 :: nil =>
do rd <- ireg_of res; do rs <- ireg_of a1;
OK (Pornil rd rs n ::i k)
+ | Oabsdiffl, a1 :: a2 :: nil =>
+ do rd <- ireg_of res; do rs1 <- ireg_of a1; do rs2 <- ireg_of a2;
+ OK (Pabdl rd rs1 rs2 ::i k)
+ | Oabsdifflimm n, a1 :: nil =>
+ do rd <- ireg_of res; do rs <- ireg_of a1;
+ OK (Pabdil rd rs n ::i k)
| Oshll, a1 :: a2 :: nil =>
do rd <- ireg_of res; do rs1 <- ireg_of a1; do rs2 <- ireg_of a2;
OK (Pslll rd rs1 rs2 ::i k)
@@ -889,7 +901,7 @@ Definition transl_op
do rC <- ireg_of aC;
do op <- conditional_move_imm64 (negate_condition0 cond0) rC rT imm;
OK (op ::i k)
-
+
| _, _ =>
Error(msg "Asmgenblock.transl_op")
end.
diff --git a/kvx/Asmvliw.v b/kvx/Asmvliw.v
index bbd40692..0ce2ed69 100644
--- a/kvx/Asmvliw.v
+++ b/kvx/Asmvliw.v
@@ -1087,7 +1087,7 @@ Definition arith_eval_rri64 n v i :=
| Pornil => Val.orl (Val.notl v) (Vlong i)
| Paddxil shift => ExtValues.addxl (int_of_shift1_4 shift) v (Vlong i)
| Prevsubxil shift => ExtValues.revsubxl (int_of_shift1_4 shift) v (Vlong i)
- | Pabdil => ExtValues.absdiff v (Vlong i)
+ | Pabdil => ExtValues.absdiffl v (Vlong i)
end.
Definition cmove bt v1 v2 v3 :=