aboutsummaryrefslogtreecommitdiffstats
path: root/backend/Profilingproof.v
diff options
context:
space:
mode:
Diffstat (limited to 'backend/Profilingproof.v')
-rw-r--r--backend/Profilingproof.v42
1 files changed, 21 insertions, 21 deletions
diff --git a/backend/Profilingproof.v b/backend/Profilingproof.v
index 0cebc601..e39e7f80 100644
--- a/backend/Profilingproof.v
+++ b/backend/Profilingproof.v
@@ -458,27 +458,27 @@ Proof.
* rewrite eval_operation_preserved with (ge1:=ge);
eauto with profiling.
+ constructor; auto.
- - econstructor; split.
- + apply plus_one. apply exec_Iload with (trap:=trap) (chunk:=chunk)
- (addr:=addr) (args:=args) (a:=a).
- erewrite transf_function_at; eauto. apply I.
- rewrite eval_addressing_preserved with (ge1:=ge).
- all: eauto with profiling.
- + constructor; auto.
- - econstructor; split.
- + apply plus_one. apply exec_Iload_notrap1 with (chunk:=chunk)
- (addr:=addr) (args:=args).
- erewrite transf_function_at; eauto. apply I.
- rewrite eval_addressing_preserved with (ge1:=ge).
- all: eauto with profiling.
- + constructor; auto.
- - econstructor; split.
- + apply plus_one. apply exec_Iload_notrap2 with (chunk:=chunk)
- (addr:=addr) (args:=args) (a:=a).
- erewrite transf_function_at; eauto. apply I.
- rewrite eval_addressing_preserved with (ge1:=ge).
- all: eauto with profiling.
- + constructor; auto.
+ - inv H0.
+ + econstructor; split.
+ * apply plus_one. eapply exec_Iload; eauto.
+ -- erewrite transf_function_at; eauto. apply I.
+ -- eapply has_loaded_normal. rewrite eval_addressing_preserved with (ge1:=ge).
+ all: eauto with profiling.
+ * constructor; auto.
+ + destruct (eval_addressing) eqn:EVAL in LOAD.
+ * econstructor; split.
+ -- specialize (LOAD v). apply plus_one. eapply exec_Iload; eauto.
+ ++ erewrite transf_function_at; eauto. apply I.
+ ++ eapply has_loaded_default; eauto. rewrite eval_addressing_preserved with (ge1:=ge).
+ intros a EVAL'; rewrite EVAL in EVAL'; inv EVAL'. apply LOAD; auto.
+ eauto with profiling.
+ -- constructor; auto.
+ * econstructor; split.
+ -- apply plus_one. eapply exec_Iload; eauto.
+ ++ erewrite transf_function_at; eauto. apply I.
+ ++ eapply has_loaded_default; eauto. rewrite eval_addressing_preserved with (ge1:=ge).
+ intros a EVAL'; rewrite EVAL in EVAL'; inv EVAL'. eauto with profiling.
+ -- constructor; auto.
- econstructor; split.
+ apply plus_one. apply exec_Istore with (chunk:=chunk) (src := src)
(addr:=addr) (args:=args) (a:=a).