aboutsummaryrefslogtreecommitdiffstats
path: root/mppa_k1c/Asmblockgen.v
diff options
context:
space:
mode:
authorCyril SIX <cyril.six@kalray.eu>2019-03-01 14:44:09 +0100
committerCyril SIX <cyril.six@kalray.eu>2019-03-01 14:44:09 +0100
commitdf32503f46a62b18f92363ac7f81ec0d5b36c64a (patch)
treeb11b1282e4b44e96c84dcaad438ee4e264fcacc9 /mppa_k1c/Asmblockgen.v
parent50affca71434b1e1ca3e75ce8f62a304ed1913cf (diff)
downloadcompcert-kvx-df32503f46a62b18f92363ac7f81ec0d5b36c64a.tar.gz
compcert-kvx-df32503f46a62b18f92363ac7f81ec0d5b36c64a.zip
Ointuofsingle done
Diffstat (limited to 'mppa_k1c/Asmblockgen.v')
-rw-r--r--mppa_k1c/Asmblockgen.v40
1 files changed, 11 insertions, 29 deletions
diff --git a/mppa_k1c/Asmblockgen.v b/mppa_k1c/Asmblockgen.v
index 8dfa2cee..56d061c2 100644
--- a/mppa_k1c/Asmblockgen.v
+++ b/mppa_k1c/Asmblockgen.v
@@ -594,27 +594,24 @@ Definition transl_op
| Ofloatofintu, a1 :: nil =>
do rd <- freg_of res; do rs <- ireg_of a1;
OK (Pfloatudrnsz_i32 rd rs ::i k)
- (* | Ofloatofint, a1 :: nil =>
- do rd <- freg_of res; do rs <- ireg_of a1;
- OK (Pfloatwrnsz rd rs ::i k)
- | Ofloatofintu, a1 :: nil =>
- do rd <- freg_of res; do rs <- ireg_of a1;
- OK (Pfloatuwrnsz rd rs ::i k) *) (* FIXME - Ofloatofint and Ofloatofintu are currently incorrect *)
| Ointofsingle, a1 :: nil =>
do rd <- ireg_of res; do rs <- freg_of a1;
OK (Pfixedwrzz rd rs ::i k)
+ | Ointuofsingle, a1 :: nil =>
+ do rd <- ireg_of res; do rs <- freg_of a1;
+ OK (Pfixeduwrzz rd rs ::i k)
| Olongoffloat, a1 :: nil =>
do rd <- ireg_of res; do rs <- freg_of a1;
OK (Pfixeddrzz rd rs ::i k)
| Ointoffloat, a1 :: nil =>
do rd <- ireg_of res; do rs <- freg_of a1;
OK (Pfixeddrzz_i32 rd rs ::i k)
- | Olonguoffloat, a1 :: nil =>
- do rd <- ireg_of res; do rs <- freg_of a1;
- OK (Pfixedudrzz rd rs ::i k)
| Ointuoffloat, a1 :: nil =>
do rd <- ireg_of res; do rs <- freg_of a1;
OK (Pfixedudrzz_i32 rd rs ::i k)
+ | Olonguoffloat, a1 :: nil =>
+ do rd <- ireg_of res; do rs <- freg_of a1;
+ OK (Pfixedudrzz rd rs ::i k)
| Ofloatofsingle, a1 :: nil =>
do rd <- freg_of res; do rs <- freg_of a1;
@@ -624,31 +621,16 @@ Definition transl_op
OK (Pfnarrowdw rd rs ::i k)
- | Oabsf , _ => Error (msg "Asmblockgen.transl_op: Oabsf")
- | Oaddf , _ => Error (msg "Asmblockgen.transl_op: Oaddf")
- | Osubf , _ => Error (msg "Asmblockgen.transl_op: Osubf")
- | Omulf , _ => Error (msg "Asmblockgen.transl_op: Omulf")
| Odivf , _ => Error (msg "Asmblockgen.transl_op: Odivf")
- | Onegfs , _ => Error (msg "Asmblockgen.transl_op: Onegfs")
- | Oabsfs , _ => Error (msg "Asmblockgen.transl_op: Oabsfs")
- | Oaddfs , _ => Error (msg "Asmblockgen.transl_op: Oaddfs")
- | Osubfs , _ => Error (msg "Asmblockgen.transl_op: Osubfs")
- | Omulfs , _ => Error (msg "Asmblockgen.transl_op: Omulfs")
- | Odivfs , _ => Error (msg "Asmblockgen.transl_op: Odivfs")
- | Osingleoflong , _ => Error (msg "Asmblockgen.transl_op: Osingleoflong")
- | Osingleoflongu , _ => Error (msg "Asmblockgen.transl_op: Osingleoflongu")
- | Ointoffloat , _ => Error (msg "Asmblockgen.transl_op: Ointoffloat")
- | Ointuoffloat , _ => Error (msg "Asmblockgen.transl_op: Ointuoffloat")
- | Ofloatofint , _ => Error (msg "Asmblockgen.transl_op: Ofloatofint")
- | Ofloatofintu , _ => Error (msg "Asmblockgen.transl_op: Ofloatofintu")
- | Ointuofsingle , _ => Error (msg "Asmblockgen.transl_op: Ointuofsingle")
- | Osingleofintu , _ => Error (msg "Asmblockgen.transl_op: Osingleofintu")
- | Olonguoffloat , _ => Error (msg "Asmblockgen.transl_op: Olonguoffloat")
-
+ (* We use the Splitlong instead for these four conversions *)
+ | Osingleoflong , _ => Error (msg "Asmblockgen.transl_op: Osingleoflong")
+ | Osingleoflongu , _ => Error (msg "Asmblockgen.transl_op: Osingleoflongu")
| Olongofsingle , _ => Error (msg "Asmblockgen.transl_op: Olongofsingle")
| Olonguofsingle , _ => Error (msg "Asmblockgen.transl_op: Olonguofsingle")
+
+
| Ocmp cmp, _ =>
do rd <- ireg_of res;
transl_cond_op cmp rd args k