diff options
author | xleroy <xleroy@fca1b0fc-160b-0410-b1d3-a4f43f01ea2e> | 2006-10-22 16:54:24 +0000 |
---|---|---|
committer | xleroy <xleroy@fca1b0fc-160b-0410-b1d3-a4f43f01ea2e> | 2006-10-22 16:54:24 +0000 |
commit | 210352d90e5972aabfb253f7c8a38349f53917b3 (patch) | |
tree | 93ccbf36e6840118abe84ee940252a7a1fbc7720 /backend/PPCgenproof.v | |
parent | ee41c6eae5af0703605780e0b3d8f5c3937f3276 (diff) | |
download | compcert-210352d90e5972aabfb253f7c8a38349f53917b3.tar.gz compcert-210352d90e5972aabfb253f7c8a38349f53917b3.zip |
Lever la restriction sur les fonctions externes, restriction qui exigeait que tous les arguments resident en registres
git-svn-id: https://yquem.inria.fr/compcert/svn/compcert/trunk@125 fca1b0fc-160b-0410-b1d3-a4f43f01ea2e
Diffstat (limited to 'backend/PPCgenproof.v')
-rw-r--r-- | backend/PPCgenproof.v | 8 |
1 files changed, 3 insertions, 5 deletions
diff --git a/backend/PPCgenproof.v b/backend/PPCgenproof.v index 9cbbc659..f1ee9f22 100644 --- a/backend/PPCgenproof.v +++ b/backend/PPCgenproof.v @@ -1185,7 +1185,7 @@ Lemma exec_function_external_prop: (res : val) (ms1 ms2: Mach.regset) (m : mem) (t : trace), event_match ef args t res -> - args = ms1 ## (Conventions.loc_external_arguments (ef_sig ef)) -> + Mach.extcall_arguments ms1 m parent ef.(ef_sig) args -> ms2 = Regmap.set (Conventions.loc_result (ef_sig ef)) res ms1 -> exec_function_prop (External ef) parent ms1 m t ms2 m. Proof. @@ -1197,10 +1197,8 @@ Proof. split. apply exec_one. eapply exec_step_external; eauto. destruct (functions_translated _ _ AT) as [tf [A B]]. simpl in B. congruence. - rewrite H0. rewrite loc_external_arguments_match. - rewrite list_map_compose. apply list_map_exten; intros. - symmetry; eapply preg_val; eauto. - reflexivity. + eapply extcall_arguments_match; eauto. + reflexivity. Qed. (** We then conclude by induction on the structure of the Mach |