diff options
author | David Monniaux <David.Monniaux@univ-grenoble-alpes.fr> | 2021-12-12 22:20:45 +0100 |
---|---|---|
committer | David Monniaux <David.Monniaux@univ-grenoble-alpes.fr> | 2021-12-12 22:20:45 +0100 |
commit | 728c4dfe489b78b9816d2efb039618168eada263 (patch) | |
tree | 50aa229d17faaba6c83fc72f101b290783f93bfb | |
parent | a3924f657b36abfad0448d0fe7d30fd40e0068de (diff) | |
download | compcert-kvx-728c4dfe489b78b9816d2efb039618168eada263.tar.gz compcert-kvx-728c4dfe489b78b9816d2efb039618168eada263.zip |
connect Asm to the rest for nearest rounding
-rw-r--r-- | kvx/Asmblockgen.v | 12 | ||||
-rw-r--r-- | kvx/Asmvliw.v | 4 |
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 := |