diff options
author | Léo Gourdin <leo.gourdin@lilo.org> | 2021-11-02 16:25:58 +0100 |
---|---|---|
committer | Léo Gourdin <leo.gourdin@lilo.org> | 2021-11-02 16:25:58 +0100 |
commit | 17b1ec4333af8120ab6867baf9c5c9139541c6b7 (patch) | |
tree | 71bd521b6603820c81217ebc10a24fcd940f110a /backend/Duplicateproof.v | |
parent | e9dc339d5e5ec129dcf6b541d6c70f9ca7fe134c (diff) | |
parent | 98ec44d9d96e7e94896eea9ac054a0188be7b6dd (diff) | |
download | compcert-kvx-17b1ec4333af8120ab6867baf9c5c9139541c6b7.tar.gz compcert-kvx-17b1ec4333af8120ab6867baf9c5c9139541c6b7.zip |
Merge branch 'RTL_has_loaded' into kvx-work
Diffstat (limited to 'backend/Duplicateproof.v')
-rw-r--r-- | backend/Duplicateproof.v | 32 |
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. |