aboutsummaryrefslogtreecommitdiffstats
path: root/kvx/Asmvliw.v
diff options
context:
space:
mode:
authorDavid Monniaux <David.Monniaux@univ-grenoble-alpes.fr>2022-02-14 18:51:52 +0100
committerDavid Monniaux <David.Monniaux@univ-grenoble-alpes.fr>2022-02-14 18:51:52 +0100
commit1ef9e303d7bd896b94afcc875136d8f3e94243cb (patch)
treeaf2da3d2fdbc0be85d207bf20111162bcf0a4f56 /kvx/Asmvliw.v
parent882f1a1875089298937abf4ef854b221cab4eb8e (diff)
parent2867dee21f6fb696db554679d8535306c7a9d4ea (diff)
downloadcompcert-kvx-1ef9e303d7bd896b94afcc875136d8f3e94243cb.tar.gz
compcert-kvx-1ef9e303d7bd896b94afcc875136d8f3e94243cb.zip
Merge remote-tracking branch 'origin/kvx-bits' into kvx_fp_division
Diffstat (limited to 'kvx/Asmvliw.v')
-rw-r--r--kvx/Asmvliw.v10
1 files changed, 10 insertions, 0 deletions
diff --git a/kvx/Asmvliw.v b/kvx/Asmvliw.v
index 6d60445a..3fa184c6 100644
--- a/kvx/Asmvliw.v
+++ b/kvx/Asmvliw.v
@@ -475,6 +475,9 @@ Inductive arith_name_rrr : Type :=
| Pfminw (**r float min word *)
| Pfmaxd (**r float max double *)
| Pfmaxw (**r float max word *)
+
+ | Pabdw (**r absolute value of difference *)
+ | Pabdl (**r absolute value of difference *)
.
Inductive arith_name_rri32 : Type :=
@@ -502,6 +505,7 @@ Inductive arith_name_rri32 : Type :=
| Psrlil (**r shift right logical immediate long *)
| Psrail (**r shift right arithmetic immediate long *)
| Psrxil (**r shift right arithmetic immediate long round to 0*)
+ | Pabdiw (**r absolute value of difference *)
.
Inductive arith_name_rri64 : Type :=
@@ -519,6 +523,7 @@ Inductive arith_name_rri64 : Type :=
| Pnxoril (**r nxor immediate long *)
| Pandnil (**r andn immediate long *)
| Pornil (**r orn immediate long *)
+ | Pabdil (**r absolute value of difference *)
.
Inductive arith_name_arrr : Type :=
@@ -1040,6 +1045,9 @@ Definition arith_eval_rrr n v1 v2 :=
| Prevsubxw shift => ExtValues.revsubx (int_of_shift1_4 shift) v1 v2
| Prevsubxl shift => ExtValues.revsubxl (int_of_shift1_4 shift) v1 v2
+
+ | Pabdw => ExtValues.absdiff v1 v2
+ | Pabdl => ExtValues.absdiffl v1 v2
end.
Definition arith_eval_rri32 n v i :=
@@ -1067,6 +1075,7 @@ Definition arith_eval_rri32 n v i :=
| Psrail => Val.shrl v (Vint i)
| Paddxiw shift => ExtValues.addx (int_of_shift1_4 shift) v (Vint i)
| Prevsubxiw shift => ExtValues.revsubx (int_of_shift1_4 shift) v (Vint i)
+ | Pabdiw => ExtValues.absdiff v (Vint i)
end.
Definition arith_eval_rri64 n v i :=
@@ -1085,6 +1094,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.absdiffl v (Vlong i)
end.
Definition cmove bt v1 v2 v3 :=