summaryrefslogtreecommitdiff
path: root/backend/Lineartyping.v
diff options
context:
space:
mode:
authorGravatar xleroy <xleroy@fca1b0fc-160b-0410-b1d3-a4f43f01ea2e>2011-08-08 06:31:10 +0000
committerGravatar xleroy <xleroy@fca1b0fc-160b-0410-b1d3-a4f43f01ea2e>2011-08-08 06:31:10 +0000
commit5909a0340ad0fe871dede1eaead855fb4b68fb0e (patch)
tree4dd849283a636edd09bbcc8be8c6371a11b6faa0 /backend/Lineartyping.v
parent5d1c52555bb166430402103afe9540cc4c296487 (diff)
IA32 port: more faithful treatment of pseudoregister ST0.
Related general change: support for destroyed_at_moves. git-svn-id: https://yquem.inria.fr/compcert/svn/compcert/trunk@1700 fca1b0fc-160b-0410-b1d3-a4f43f01ea2e
Diffstat (limited to 'backend/Lineartyping.v')
-rw-r--r--backend/Lineartyping.v19
1 files changed, 15 insertions, 4 deletions
diff --git a/backend/Lineartyping.v b/backend/Lineartyping.v
index 390b630..3930da3 100644
--- a/backend/Lineartyping.v
+++ b/backend/Lineartyping.v
@@ -153,18 +153,23 @@ Proof.
auto.
Qed.
+Lemma wt_undef_locs:
+ forall locs ls, wt_locset ls -> wt_locset (Locmap.undef locs ls).
+Proof.
+ induction locs; simpl; intros. auto. apply IHlocs. apply wt_setloc; auto. red; auto.
+Qed.
+
Lemma wt_undef_temps:
forall ls, wt_locset ls -> wt_locset (undef_temps ls).
Proof.
- unfold undef_temps. generalize temporaries. induction l; simpl; intros.
- auto.
- apply IHl. apply wt_setloc; auto. red; auto.
+ intros; unfold undef_temps. apply wt_undef_locs; auto.
Qed.
Lemma wt_undef_op:
forall op ls, wt_locset ls -> wt_locset (undef_op op ls).
Proof.
- intros. generalize (wt_undef_temps ls H); intro. case op; simpl; auto.
+ intros. generalize (wt_undef_temps ls H); intro.
+ unfold undef_op; destruct op; auto; apply wt_undef_locs; auto.
Qed.
Lemma wt_undef_getstack:
@@ -173,6 +178,12 @@ Proof.
intros. unfold undef_getstack. destruct s; auto. apply wt_setloc; auto. red; auto.
Qed.
+Lemma wt_undef_setstack:
+ forall ls, wt_locset ls -> wt_locset (undef_setstack ls).
+Proof.
+ intros. unfold undef_setstack. apply wt_undef_locs; auto.
+Qed.
+
Lemma wt_call_regs:
forall ls, wt_locset ls -> wt_locset (call_regs ls).
Proof.