diff options
author | David Monniaux <David.Monniaux@univ-grenoble-alpes.fr> | 2022-02-14 18:51:52 +0100 |
---|---|---|
committer | David Monniaux <David.Monniaux@univ-grenoble-alpes.fr> | 2022-02-14 18:51:52 +0100 |
commit | 1ef9e303d7bd896b94afcc875136d8f3e94243cb (patch) | |
tree | af2da3d2fdbc0be85d207bf20111162bcf0a4f56 /kvx/Asmvliw.v | |
parent | 882f1a1875089298937abf4ef854b221cab4eb8e (diff) | |
parent | 2867dee21f6fb696db554679d8535306c7a9d4ea (diff) | |
download | compcert-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.v | 10 |
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 := |