aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorDavid Monniaux <David.Monniaux@univ-grenoble-alpes.fr>2021-12-12 22:20:45 +0100
committerDavid Monniaux <David.Monniaux@univ-grenoble-alpes.fr>2021-12-12 22:20:45 +0100
commit728c4dfe489b78b9816d2efb039618168eada263 (patch)
tree50aa229d17faaba6c83fc72f101b290783f93bfb
parenta3924f657b36abfad0448d0fe7d30fd40e0068de (diff)
downloadcompcert-kvx-728c4dfe489b78b9816d2efb039618168eada263.tar.gz
compcert-kvx-728c4dfe489b78b9816d2efb039618168eada263.zip
connect Asm to the rest for nearest rounding
-rw-r--r--kvx/Asmblockgen.v12
-rw-r--r--kvx/Asmvliw.v4
2 files changed, 14 insertions, 2 deletions
diff --git a/kvx/Asmblockgen.v b/kvx/Asmblockgen.v
index ab827b1c..a8f1a045 100644
--- a/kvx/Asmblockgen.v
+++ b/kvx/Asmblockgen.v
@@ -799,6 +799,12 @@ Definition transl_op
| Ointuofsingle, a1 :: nil =>
do rd <- ireg_of res; do rs <- freg_of a1;
OK (Pfixeduwrzz rd rs ::i k)
+ | Ointofsingle_ne, a1 :: nil =>
+ do rd <- ireg_of res; do rs <- freg_of a1;
+ OK (Pfixedwrne rd rs ::i k)
+ | Ointuofsingle_ne, a1 :: nil =>
+ do rd <- ireg_of res; do rs <- freg_of a1;
+ OK (Pfixeduwrne rd rs ::i k)
| Olongoffloat, a1 :: nil =>
do rd <- ireg_of res; do rs <- freg_of a1;
OK (Pfixeddrzz rd rs ::i k)
@@ -811,6 +817,12 @@ Definition transl_op
| Olonguoffloat, a1 :: nil =>
do rd <- ireg_of res; do rs <- freg_of a1;
OK (Pfixedudrzz rd rs ::i k)
+ | Olongoffloat_ne, a1 :: nil =>
+ do rd <- ireg_of res; do rs <- freg_of a1;
+ OK (Pfixeddrne rd rs ::i k)
+ | Olonguoffloat_ne, a1 :: nil =>
+ do rd <- ireg_of res; do rs <- freg_of a1;
+ OK (Pfixedudrne rd rs ::i k)
| Ofloatofsingle, a1 :: nil =>
do rd <- freg_of res; do rs <- freg_of a1;
diff --git a/kvx/Asmvliw.v b/kvx/Asmvliw.v
index b3c0c8fa..6d60445a 100644
--- a/kvx/Asmvliw.v
+++ b/kvx/Asmvliw.v
@@ -960,8 +960,8 @@ Definition arith_eval_rr n v :=
| Pfixedudrzz_i32 => Val.maketotal (Val.intuoffloat v)
| Pfixedudrne => Val.maketotal (Val.longuoffloat_ne v)
| Pfixeddrne => Val.maketotal (Val.longoffloat_ne v)
- | Pfixeduwrne => Val.maketotal (Val.intuoffloat_ne v)
- | Pfixedwrne => Val.maketotal (Val.intoffloat_ne v)
+ | Pfixeduwrne => Val.maketotal (Val.intuofsingle_ne v)
+ | Pfixedwrne => Val.maketotal (Val.intofsingle_ne v)
end.
Definition arith_eval_ri32 n i :=