diff options
author | xleroy <xleroy@fca1b0fc-160b-0410-b1d3-a4f43f01ea2e> | 2009-01-11 11:57:02 +0000 |
---|---|---|
committer | xleroy <xleroy@fca1b0fc-160b-0410-b1d3-a4f43f01ea2e> | 2009-01-11 11:57:02 +0000 |
commit | bb9d14a3f95fc0e3c8cad10d8ea8e2b2738da7fc (patch) | |
tree | 3efa5cb51e9bb3edc935f42dbd630fce9a170804 /backend/Stackingtyping.v | |
parent | cd2449aabe7b259b0fdb8aaa2af65c2b8957ab32 (diff) |
- Added alignment constraints to memory loads and stores.
- In Cminor and below, removed pointer validity check in semantics of
comparisons, so that evaluation of expressions is independent of
memory state.
- In Cminor and below, removed "alloc" instruction.
- Cleaned up commented-away parts.
git-svn-id: https://yquem.inria.fr/compcert/svn/compcert/trunk@945 fca1b0fc-160b-0410-b1d3-a4f43f01ea2e
Diffstat (limited to 'backend/Stackingtyping.v')
-rw-r--r-- | backend/Stackingtyping.v | 5 |
1 files changed, 3 insertions, 2 deletions
diff --git a/backend/Stackingtyping.v b/backend/Stackingtyping.v index f1fe2cf..b88dd50 100644 --- a/backend/Stackingtyping.v +++ b/backend/Stackingtyping.v @@ -176,8 +176,6 @@ Proof. apply wt_restore_callee_save. apply wt_instrs_cons; auto. constructor; auto. destruct s0; auto. rewrite H5; auto. - (* alloc *) - apply wt_instrs_cons; auto. constructor. (* label *) apply wt_instrs_cons; auto. constructor. @@ -227,10 +225,13 @@ Proof. red; intros. elim H5. subst tf; simpl; auto. rewrite H2. generalize (size_pos f). fold b; fold fe; omega. + rewrite H1. change (4 | fe_size fe). unfold fe, b. apply frame_size_aligned. rewrite H3; rewrite H2. change 4 with (4 * typesize (type_of_index FI_link)). unfold fe, b; apply offset_of_index_valid. red; auto. + rewrite H3. unfold fe,b; apply offset_of_index_aligned. rewrite H4; rewrite H2. change 4 with (4 * typesize (type_of_index FI_retaddr)). unfold fe, b; apply offset_of_index_valid. red; auto. + rewrite H4. unfold fe,b; apply offset_of_index_aligned. rewrite H3; rewrite H4. apply (offset_of_index_disj f FI_retaddr FI_link); red; auto. Qed. |