aboutsummaryrefslogtreecommitdiffstats
path: root/mppa_k1c/Asmgenproof1.v
diff options
context:
space:
mode:
authorCyril SIX <cyril.six@kalray.eu>2018-03-13 15:53:31 +0100
committerCyril SIX <cyril.six@kalray.eu>2018-04-04 16:30:07 +0200
commit79597131ae07f1fe63485270486755481549470f (patch)
tree6ef89496243889bf4c5eec52f05d18fa08984ff8 /mppa_k1c/Asmgenproof1.v
parente3aed59a6d58f4486da40e0a7a381ea0bf10ba81 (diff)
downloadcompcert-kvx-79597131ae07f1fe63485270486755481549470f.tar.gz
compcert-kvx-79597131ae07f1fe63485270486755481549470f.zip
MPPA - ABI proof complete (Asmgenproof.v:step_simulation)
Diffstat (limited to 'mppa_k1c/Asmgenproof1.v')
-rw-r--r--mppa_k1c/Asmgenproof1.v21
1 files changed, 18 insertions, 3 deletions
diff --git a/mppa_k1c/Asmgenproof1.v b/mppa_k1c/Asmgenproof1.v
index 7fe9b3f7..c712b5e7 100644
--- a/mppa_k1c/Asmgenproof1.v
+++ b/mppa_k1c/Asmgenproof1.v
@@ -1236,6 +1236,21 @@ Proof.
Qed.
*)
+Lemma Pget_correct:
+ forall (dst: gpreg) (src: preg) k (rs: regset) m,
+ src = RA ->
+ exists rs',
+ exec_straight ge fn (Pget dst src :: k) rs m k rs' m
+ /\ rs'#dst = rs#src
+ /\ forall r, r <> PC -> r <> dst -> rs'#r = rs#r.
+Proof.
+ intros. econstructor; econstructor; econstructor.
+- simpl. rewrite H. auto.
+- Simpl.
+- Simpl.
+- intros. rewrite H. Simpl.
+Qed.
+
Lemma Pset_correct:
forall (dst: preg) (src: gpreg) k (rs: regset) m,
dst = RA ->
@@ -1263,7 +1278,7 @@ Proof.
intros. eapply indexed_load_access_correct; eauto with asmgen.
intros. unfold Mptr. assert (Archi.ptr64 = true). auto. rewrite H1. auto.
Qed.
-(*
+
Lemma storeind_ptr_correct:
forall (base: ireg) ofs (src: ireg) k (rs: regset) m m',
Mem.storev Mptr m (Val.offset_ptr rs#base ofs) rs#src = Some m' ->
@@ -1273,9 +1288,9 @@ Lemma storeind_ptr_correct:
/\ forall r, r <> PC -> r <> GPR31 -> rs'#r = rs#r.
Proof.
intros. eapply indexed_store_access_correct with (r1 := src); eauto with asmgen.
- intros. unfold Mptr. destruct Archi.ptr64; auto.
+ intros. unfold Mptr. assert (Archi.ptr64 = true); auto.
Qed.
-*)
+
Lemma transl_memory_access_correct:
forall mk_instr addr args k c (rs: regset) m v,
transl_memory_access mk_instr addr args k = OK c ->