aboutsummaryrefslogtreecommitdiffstats
path: root/mppa_k1c
diff options
context:
space:
mode:
authorCyril SIX <cyril.six@kalray.eu>2018-03-21 17:19:06 +0100
committerCyril SIX <cyril.six@kalray.eu>2018-04-04 16:30:09 +0200
commit0a7a6ed916a95b53b63a9d4bdf1e545aacf3f82b (patch)
tree5ec79aeecac5d38a00580d020871018ad58c1c37 /mppa_k1c
parent3f5f3aedb19165134b45dbf6aeea877e8ab46f6f (diff)
downloadcompcert-kvx-0a7a6ed916a95b53b63a9d4bdf1e545aacf3f82b.tar.gz
compcert-kvx-0a7a6ed916a95b53b63a9d4bdf1e545aacf3f82b.zip
MPPA - Reactivated Omove
Diffstat (limited to 'mppa_k1c')
-rw-r--r--mppa_k1c/Asmgen.v4
-rw-r--r--mppa_k1c/Asmgenproof.v4
-rw-r--r--mppa_k1c/Asmgenproof1.v2
3 files changed, 7 insertions, 3 deletions
diff --git a/mppa_k1c/Asmgen.v b/mppa_k1c/Asmgen.v
index e6c99547..3445c898 100644
--- a/mppa_k1c/Asmgen.v
+++ b/mppa_k1c/Asmgen.v
@@ -378,12 +378,12 @@ Definition transl_cond_op
Definition transl_op
(op: operation) (args: list mreg) (res: mreg) (k: code) :=
match op, args with
-(*| Omove, a1 :: nil =>
+ | Omove, a1 :: nil =>
match preg_of res, preg_of a1 with
| IR r, IR a => OK (Pmv r a :: k)
| _ , _ => Error(msg "Asmgen.Omove")
end
-*)| Ointconst n, nil =>
+ | Ointconst n, nil =>
do rd <- ireg_of res;
OK (loadimm32 rd n k)
| Olongconst n, nil =>
diff --git a/mppa_k1c/Asmgenproof.v b/mppa_k1c/Asmgenproof.v
index cbf5f166..afbb2e3f 100644
--- a/mppa_k1c/Asmgenproof.v
+++ b/mppa_k1c/Asmgenproof.v
@@ -277,7 +277,11 @@ Remark transl_op_label:
Proof.
Opaque Int.eq.
unfold transl_op; intros; destruct op; TailNoLabel.
+(* Omove *)
+- destruct (preg_of r); try discriminate; destruct (preg_of m); inv H; TailNoLabel.
+(* ? *)
- apply opimm32_label; intros; exact I.
+(* ? *)
- apply opimm64_label; intros; exact I.
Qed.
diff --git a/mppa_k1c/Asmgenproof1.v b/mppa_k1c/Asmgenproof1.v
index e339a4c9..23c0478c 100644
--- a/mppa_k1c/Asmgenproof1.v
+++ b/mppa_k1c/Asmgenproof1.v
@@ -982,9 +982,9 @@ Proof.
Opaque Int.eq.
intros until c; intros TR EV.
unfold transl_op in TR; destruct op; ArgsInv; simpl in EV; SimplEval EV; try TranslOpSimpl.
-(*
- (* move *)
destruct (preg_of res), (preg_of m0); inv TR; TranslOpSimpl.
+(*
- (* intconst *)
exploit loadimm32_correct; eauto. intros (rs' & A & B & C).
exists rs'; split; eauto. rewrite B; auto with asmgen.