diff options
author | David Monniaux <David.Monniaux@univ-grenoble-alpes.fr> | 2022-02-14 16:19:17 +0100 |
---|---|---|
committer | David Monniaux <David.Monniaux@univ-grenoble-alpes.fr> | 2022-02-14 16:19:17 +0100 |
commit | fc384f172b72f90c8de52ec846344b7ffda76070 (patch) | |
tree | 69c5685aa56d066a8e1a9b1f3e9e43b4153ed867 /kvx | |
parent | f6686d81092ccaaf3a22b4e34aecc7c5895b08ba (diff) | |
download | compcert-kvx-fc384f172b72f90c8de52ec846344b7ffda76070.tar.gz compcert-kvx-fc384f172b72f90c8de52ec846344b7ffda76070.zip |
compiled absdiff
Diffstat (limited to 'kvx')
-rw-r--r-- | kvx/Asmblockgen.v | 14 | ||||
-rw-r--r-- | kvx/Asmvliw.v | 2 |
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 := |