diff options
Diffstat (limited to 'backend/Alloctyping.v')
-rw-r--r-- | backend/Alloctyping.v | 15 |
1 files changed, 11 insertions, 4 deletions
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. |