diff options
author | xleroy <xleroy@fca1b0fc-160b-0410-b1d3-a4f43f01ea2e> | 2012-05-26 07:32:01 +0000 |
---|---|---|
committer | xleroy <xleroy@fca1b0fc-160b-0410-b1d3-a4f43f01ea2e> | 2012-05-26 07:32:01 +0000 |
commit | 132e36fa0be63eb5672eda9168403d3fb74af2fa (patch) | |
tree | 33955e0ccb4210271c82326b941523e6e4b2c289 /backend/Inliningproof.v | |
parent | 9ea00d39bb32c1f188f1af2745c3368da6a349c1 (diff) | |
download | compcert-132e36fa0be63eb5672eda9168403d3fb74af2fa.tar.gz compcert-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.v | 10 |
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. |