From 173e6c25b2937d6e6941973aa7b116e1d6405513 Mon Sep 17 00:00:00 2001 From: Léo Gourdin Date: Tue, 2 Nov 2021 10:10:34 +0100 Subject: Porting the BTL non-trap loads approach to RTL --- scheduling/BTLtoRTLproof.v | 20 ++++++++++++++------ 1 file changed, 14 insertions(+), 6 deletions(-) (limited to 'scheduling/BTLtoRTLproof.v') diff --git a/scheduling/BTLtoRTLproof.v b/scheduling/BTLtoRTLproof.v index cbdc81bd..2e3c5cd8 100644 --- a/scheduling/BTLtoRTLproof.v +++ b/scheduling/BTLtoRTLproof.v @@ -230,12 +230,20 @@ Proof. intros; rewrite symbols_preserved; trivial. - (* exec_load *) inv MIB. exists pc'; split; auto; constructor. - apply plus_one. inv LOAD. - eapply exec_Iload; eauto. - all: try (destruct (eval_addressing _ _ _ _) eqn:EVAL; - [ eapply exec_Iload_notrap2 | eapply exec_Iload_notrap1]; eauto). - all: erewrite <- eval_addressing_preserved; eauto; - intros; rewrite symbols_preserved; trivial. + apply plus_one. inversion LOAD; subst. + + eapply exec_Iload; eauto. eapply has_loaded_normal; eauto. + rewrite <- EVAL. erewrite <- eval_addressing_preserved; eauto. + intros; rewrite symbols_preserved; trivial. + + destruct (eval_addressing) eqn:EVAL in LOAD0. + * specialize (LOAD0 v). + eapply exec_Iload; eauto. eapply has_loaded_default; eauto. + rewrite eval_addressing_preserved with (ge1:=ge). + intros a EVAL'; rewrite EVAL in EVAL'; inv EVAL'. apply LOAD0; auto. + intros; rewrite symbols_preserved; trivial. + * eapply exec_Iload; eauto. eapply has_loaded_default; eauto. + rewrite eval_addressing_preserved with (ge1:=ge). + intros a EVAL'; rewrite EVAL in EVAL'; inv EVAL'. + intros; rewrite symbols_preserved; trivial. - (* exec_store *) inv MIB. exists pc'; split; auto; constructor. apply plus_one. eapply exec_Istore; eauto. -- cgit