From 4297fcb821c3188449b64184af73e41491a6118f Mon Sep 17 00:00:00 2001 From: xleroy Date: Mon, 23 Jul 2012 15:01:54 +0000 Subject: - Revised non-overflow constraints on memory injections so that injections compose (Values, Memdata, Memory) - Memory chunks: Mfloat64 now has alignment 8; introduced Mfloat64al32 that works like old Mfloat64 (i.e. has alignment 4); simplified handling of memcpy builtin accordingly. git-svn-id: https://yquem.inria.fr/compcert/svn/compcert/trunk@1983 fca1b0fc-160b-0410-b1d3-a4f43f01ea2e --- cfrontend/Cshmgenproof.v | 14 ++++++-------- 1 file changed, 6 insertions(+), 8 deletions(-) (limited to 'cfrontend/Cshmgenproof.v') diff --git a/cfrontend/Cshmgenproof.v b/cfrontend/Cshmgenproof.v index 0b8b9a0..47bc1c6 100644 --- a/cfrontend/Cshmgenproof.v +++ b/cfrontend/Cshmgenproof.v @@ -727,6 +727,7 @@ Proof. rewrite H in MKLOAD. inv MKLOAD. constructor; auto. Qed. +(* Remark capped_alignof_divides: forall ty n, (alignof ty | n) -> (Zmin (alignof ty) 4 | n). @@ -743,6 +744,7 @@ Proof. intros. generalize (alignof_1248 ty). intros [A|[A|[A|A]]]; rewrite A; auto. Qed. +*) Lemma make_memcpy_correct: forall f dst src ty k e le m b ofs v t m', @@ -757,11 +759,9 @@ Proof. econstructor. econstructor. eauto. econstructor. eauto. constructor. econstructor; eauto. - apply capped_alignof_124. + apply alignof_1248. apply sizeof_pos. - apply capped_alignof_divides. apply sizeof_alignof_compat. - apply capped_alignof_divides; auto. - apply capped_alignof_divides; auto. + apply sizeof_alignof_compat. Qed. Lemma make_store_correct: @@ -1046,11 +1046,9 @@ Proof. apply bind_parameters_array with b m1. exploit me_local; eauto. intros [vk [A B]]. congruence. econstructor; eauto. - apply capped_alignof_124. + apply alignof_1248. apply sizeof_pos. - apply capped_alignof_divides. apply sizeof_alignof_compat. - apply capped_alignof_divides; auto. - apply capped_alignof_divides; auto. + apply sizeof_alignof_compat. apply IHbind_parameters; auto. Qed. -- cgit v1.2.3