diff options
author | Cyril SIX <cyril.six@kalray.eu> | 2019-03-01 14:44:09 +0100 |
---|---|---|
committer | Cyril SIX <cyril.six@kalray.eu> | 2019-03-01 14:44:09 +0100 |
commit | df32503f46a62b18f92363ac7f81ec0d5b36c64a (patch) | |
tree | b11b1282e4b44e96c84dcaad438ee4e264fcacc9 /mppa_k1c/Asmblockgen.v | |
parent | 50affca71434b1e1ca3e75ce8f62a304ed1913cf (diff) | |
download | compcert-kvx-df32503f46a62b18f92363ac7f81ec0d5b36c64a.tar.gz compcert-kvx-df32503f46a62b18f92363ac7f81ec0d5b36c64a.zip |
Ointuofsingle done
Diffstat (limited to 'mppa_k1c/Asmblockgen.v')
-rw-r--r-- | mppa_k1c/Asmblockgen.v | 40 |
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 |