aboutsummaryrefslogtreecommitdiffstats
path: root/backend/Inliningproof.v
diff options
context:
space:
mode:
authorxleroy <xleroy@fca1b0fc-160b-0410-b1d3-a4f43f01ea2e>2012-05-26 07:32:01 +0000
committerxleroy <xleroy@fca1b0fc-160b-0410-b1d3-a4f43f01ea2e>2012-05-26 07:32:01 +0000
commit132e36fa0be63eb5672eda9168403d3fb74af2fa (patch)
tree33955e0ccb4210271c82326b941523e6e4b2c289 /backend/Inliningproof.v
parent9ea00d39bb32c1f188f1af2745c3368da6a349c1 (diff)
downloadcompcert-kvx-132e36fa0be63eb5672eda9168403d3fb74af2fa.tar.gz
compcert-kvx-132e36fa0be63eb5672eda9168403d3fb74af2fa.zip
CSE: add recognition of some combined operators, conditions, and addressing modes (cf. CombineOp.v)
Memory model: cleaning up Memdata Inlining and new Constprop: updated for ARM. git-svn-id: https://yquem.inria.fr/compcert/svn/compcert/trunk@1902 fca1b0fc-160b-0410-b1d3-a4f43f01ea2e
Diffstat (limited to 'backend/Inliningproof.v')
-rw-r--r--backend/Inliningproof.v10
1 files changed, 6 insertions, 4 deletions
diff --git a/backend/Inliningproof.v b/backend/Inliningproof.v
index c62e173a..f88ca81e 100644
--- a/backend/Inliningproof.v
+++ b/backend/Inliningproof.v
@@ -868,9 +868,10 @@ Proof.
eauto.
fold (saddr ctx addr). intros [a' [P Q]].
exploit Mem.loadv_inject; eauto. intros [v' [U V]].
+ assert (eval_addressing tge (Vptr sp' Int.zero) (saddr ctx addr) rs' ## (sregs ctx args) = Some a').
+ rewrite <- P. apply eval_addressing_preserved. exact symbols_preserved.
left; econstructor; split.
- eapply plus_one. eapply exec_Iload; eauto. erewrite eval_addressing_preserved; eauto.
- exact symbols_preserved.
+ eapply plus_one. eapply exec_Iload; eauto.
econstructor; eauto.
apply match_stacks_inside_set_reg; auto.
apply agree_set_reg; auto.
@@ -885,9 +886,10 @@ Proof.
fold saddr. intros [a' [P Q]].
exploit Mem.storev_mapped_inject; eauto. eapply agree_val_reg; eauto.
intros [m1' [U V]].
+ assert (eval_addressing tge (Vptr sp' Int.zero) (saddr ctx addr) rs' ## (sregs ctx args) = Some a').
+ rewrite <- P. apply eval_addressing_preserved. exact symbols_preserved.
left; econstructor; split.
- eapply plus_one. eapply exec_Istore; eauto. erewrite eval_addressing_preserved; eauto.
- exact symbols_preserved.
+ eapply plus_one. eapply exec_Istore; eauto.
destruct a; simpl in H1; try discriminate.
destruct a'; simpl in U; try discriminate.
econstructor; eauto.