diff options
author | Léo Gourdin <leo.gourdin@lilo.org> | 2021-11-02 10:57:22 +0100 |
---|---|---|
committer | Léo Gourdin <leo.gourdin@lilo.org> | 2021-11-02 10:57:22 +0100 |
commit | 5530915001c3e8b395d731480e5a6618a08af7af (patch) | |
tree | 40508857b2da3795e562f4dd4c31b2b429ea822f /backend/Tailcallproof.v | |
parent | 173e6c25b2937d6e6941973aa7b116e1d6405513 (diff) | |
download | compcert-kvx-5530915001c3e8b395d731480e5a6618a08af7af.tar.gz compcert-kvx-5530915001c3e8b395d731480e5a6618a08af7af.zip |
being more archi-independant
Diffstat (limited to 'backend/Tailcallproof.v')
-rw-r--r-- | backend/Tailcallproof.v | 8 |
1 files changed, 4 insertions, 4 deletions
diff --git a/backend/Tailcallproof.v b/backend/Tailcallproof.v index c8107ad6..4eb0ba23 100644 --- a/backend/Tailcallproof.v +++ b/backend/Tailcallproof.v @@ -433,16 +433,16 @@ Proof. exploit Mem.loadv_extends; eauto. intros [v' [LOAD' VLD]]. left. exists (State s' (transf_function f) (Vptr sp0 Ptrofs.zero) pc' (rs'#dst <- v') m'); split. - * eapply exec_Iload; eauto. eapply has_loaded_normal; eauto. - rewrite <- EVAL'. apply eval_addressing_preserved. exact symbols_preserved. + * try (eapply exec_Iload; eauto; eapply has_loaded_normal; eauto; + rewrite <- EVAL'; apply eval_addressing_preserved; exact symbols_preserved). * econstructor; eauto. apply set_reg_lessdef; auto. + destruct (eval_addressing) eqn:EVAL in LOAD. * left. exploit eval_addressing_lessdef; eauto. intros [a' [EVAL' ALD]]. specialize (LOAD v). destruct (Mem.loadv chunk m' a') eqn:Echunk2. -- exists (State s' (transf_function f) (Vptr sp0 Ptrofs.zero) pc' (rs'#dst <- v0) m'); split. - ++ eapply exec_Iload; eauto. eapply has_loaded_normal; eauto. - erewrite eval_addressing_preserved; eauto. exact symbols_preserved. + ++ try (eapply exec_Iload; eauto; eapply has_loaded_normal; eauto; + erewrite eval_addressing_preserved; eauto; exact symbols_preserved). ++ econstructor; eauto. apply set_reg_lessdef; auto. -- exists (State s' (transf_function f) (Vptr sp0 Ptrofs.zero) pc' (rs'#dst <- Vundef) m'); split. ++ eapply exec_Iload; eauto. eapply has_loaded_default; intuition. |