diff options
author | David Monniaux <david.monniaux@univ-grenoble-alpes.fr> | 2019-05-01 15:48:11 +0200 |
---|---|---|
committer | David Monniaux <david.monniaux@univ-grenoble-alpes.fr> | 2019-05-01 15:48:11 +0200 |
commit | 807b07dce1f41dc885d7671e8567ba112966ba7b (patch) | |
tree | 9d5566ff70486134874dc83f45ee1e3166eb0ce1 /mppa_k1c/PostpassSchedulingproof.v | |
parent | 7b0b080b118c097c84d5fb57a353cddf8c96b3ef (diff) | |
download | compcert-kvx-807b07dce1f41dc885d7671e8567ba112966ba7b.tar.gz compcert-kvx-807b07dce1f41dc885d7671e8567ba112966ba7b.zip |
begin load.xs
Diffstat (limited to 'mppa_k1c/PostpassSchedulingproof.v')
-rw-r--r-- | mppa_k1c/PostpassSchedulingproof.v | 12 |
1 files changed, 12 insertions, 0 deletions
diff --git a/mppa_k1c/PostpassSchedulingproof.v b/mppa_k1c/PostpassSchedulingproof.v index bc90dd4c..3f3cb19c 100644 --- a/mppa_k1c/PostpassSchedulingproof.v +++ b/mppa_k1c/PostpassSchedulingproof.v @@ -117,6 +117,17 @@ Proof. - discriminate. Qed. +Lemma exec_load_regxs_pc_var: + forall t rs m rd ra ro rs' m' v, + exec_load_regxs t rs m rd ra ro = Next rs' m' -> + exec_load_regxs t rs # PC <- v m rd ra ro = Next rs' # PC <- v m'. +Proof. + intros. unfold exec_load_regxs in *. unfold parexec_load_regxs in *. rewrite Pregmap.gso; try discriminate. + destruct (Mem.loadv _ _ _). + - inv H. apply next_eq; auto. apply functional_extensionality. intros. rewrite regset_double_set; auto. discriminate. + - discriminate. +Qed. + Lemma exec_store_offset_pc_var: forall ge t rs m rd ra ofs rs' m' v, exec_store_offset ge t rs m rd ra ofs = Next rs' m' -> @@ -155,6 +166,7 @@ Proof. - destruct i. + exploreInst; apply exec_load_offset_pc_var; auto. + exploreInst; apply exec_load_reg_pc_var; auto. + + exploreInst; apply exec_load_regxs_pc_var; auto. - destruct i. + exploreInst; apply exec_store_offset_pc_var; auto. + exploreInst; apply exec_store_reg_pc_var; auto. |