From dc4bed2cf06f46687225275131f411c86c773598 Mon Sep 17 00:00:00 2001 From: xleroy Date: Sun, 21 Dec 2008 13:32:24 +0000 Subject: Revised back-end so that only 2 integer registers are reserved for reloading. git-svn-id: https://yquem.inria.fr/compcert/svn/compcert/trunk@925 fca1b0fc-160b-0410-b1d3-a4f43f01ea2e --- backend/Alloctyping.v | 15 +++++++++++---- 1 file changed, 11 insertions(+), 4 deletions(-) (limited to 'backend/Alloctyping.v') diff --git a/backend/Alloctyping.v b/backend/Alloctyping.v index 469fd3c3..d9ab17b0 100644 --- a/backend/Alloctyping.v +++ b/backend/Alloctyping.v @@ -106,6 +106,7 @@ Ltac WT := Lemma wt_transf_instr: forall pc instr, RTLtyping.wt_instr env f instr -> + f.(RTL.fn_code)!pc = Some instr -> wt_instr tf (transf_instr f live alloc pc instr). Proof. intros. inv H; simpl. @@ -124,13 +125,19 @@ Proof. (* store *) WT. (* call *) + exploit regalloc_correct_1; eauto. unfold correct_alloc_instr. + intros [A1 [A2 A3]]. WT. - destruct ros; simpl. autorewrite with allocty; auto. auto. - destruct ros; simpl; auto with allocty. + destruct ros; simpl; auto. + split. autorewrite with allocty; auto. + split. auto with allocty. auto. (* tailcall *) + exploit regalloc_correct_1; eauto. unfold correct_alloc_instr. + intro A1. WT. - destruct ros; simpl. autorewrite with allocty; auto. auto. - destruct ros; simpl; auto with allocty. + destruct ros; simpl; auto. + split. autorewrite with allocty; auto. + split. auto with allocty. auto. rewrite transf_unroll; auto. (* alloc *) WT. -- cgit