aboutsummaryrefslogtreecommitdiffstats
path: root/backend/Duplicateproof.v
diff options
context:
space:
mode:
Diffstat (limited to 'backend/Duplicateproof.v')
-rw-r--r--backend/Duplicateproof.v32
1 files changed, 13 insertions, 19 deletions
diff --git a/backend/Duplicateproof.v b/backend/Duplicateproof.v
index 2f3bad2f..5752f5d2 100644
--- a/backend/Duplicateproof.v
+++ b/backend/Duplicateproof.v
@@ -414,25 +414,19 @@ Proof.
(* Iload *)
- eapply dupmap_correct in DUPLIC; eauto.
destruct DUPLIC as (i' & H2 & H3). inv H3.
- pose symbols_preserved as SYMPRES.
- eexists. split.
- + eapply exec_Iload; eauto; (* is the follow still needed?*) erewrite eval_addressing_preserved; eauto.
- + econstructor; eauto.
-(* Iload notrap1 *)
- - eapply dupmap_correct in DUPLIC; eauto.
- destruct DUPLIC as (i' & H2 & H3). inv H3.
- pose symbols_preserved as SYMPRES.
- eexists. split.
- + eapply exec_Iload_notrap1; eauto; erewrite eval_addressing_preserved; eauto.
- + econstructor; eauto.
-(* Iload notrap2 *)
- - eapply dupmap_correct in DUPLIC; eauto.
- destruct DUPLIC as (i' & H2 & H3). inv H3.
- pose symbols_preserved as SYMPRES.
- eexists. split.
- + eapply exec_Iload_notrap2; eauto; erewrite eval_addressing_preserved; eauto.
- + econstructor; eauto.
-
+ pose symbols_preserved as SYMPRES. inv H0.
+ + eexists; split.
+ * try (eapply exec_Iload; eauto; eapply has_loaded_normal; eauto; erewrite eval_addressing_preserved; eauto).
+ * econstructor; eauto.
+ + destruct (eval_addressing) eqn:EVAL in LOAD.
+ * specialize (LOAD v). eexists; split.
+ -- eapply exec_Iload; eauto. eapply has_loaded_default; eauto. erewrite eval_addressing_preserved; eauto.
+ intros a EVAL'; rewrite EVAL in EVAL'; inv EVAL'. apply LOAD; auto.
+ -- econstructor; eauto.
+ * eexists; split.
+ -- eapply exec_Iload; eauto. eapply has_loaded_default; eauto. erewrite eval_addressing_preserved; eauto.
+ intros a EVAL'; rewrite EVAL in EVAL'; inv EVAL'.
+ -- econstructor; eauto.
(* Istore *)
- eapply dupmap_correct in DUPLIC; eauto.
destruct DUPLIC as (i' & H2 & H3). inv H3.