aboutsummaryrefslogtreecommitdiffstats
path: root/powerpc/Asmgenproof.v
diff options
context:
space:
mode:
authorxleroy <xleroy@fca1b0fc-160b-0410-b1d3-a4f43f01ea2e>2012-01-14 14:23:26 +0000
committerxleroy <xleroy@fca1b0fc-160b-0410-b1d3-a4f43f01ea2e>2012-01-14 14:23:26 +0000
commita82c9c0e4a0b8e37c9c3ea5ae99714982563606f (patch)
tree93b9999698a4cd47ec4cb5fcdcdfd215d62f8e9e /powerpc/Asmgenproof.v
parentbb8f49c419eb8205ef541edcbe17f4d14aa99564 (diff)
downloadcompcert-kvx-a82c9c0e4a0b8e37c9c3ea5ae99714982563606f.tar.gz
compcert-kvx-a82c9c0e4a0b8e37c9c3ea5ae99714982563606f.zip
Merge of the nonstrict-ops branch:
- Most RTL operators now evaluate to Some Vundef instead of None when undefined behavior occurs. - More aggressive instruction selection. - "Bertotization" of pattern-matchings now implemented by a proper preprocessor. - Cast optimization moved to cfrontend/Cminorgen; removed backend/CastOptim. git-svn-id: https://yquem.inria.fr/compcert/svn/compcert/trunk@1790 fca1b0fc-160b-0410-b1d3-a4f43f01ea2e
Diffstat (limited to 'powerpc/Asmgenproof.v')
-rw-r--r--powerpc/Asmgenproof.v24
1 files changed, 21 insertions, 3 deletions
diff --git a/powerpc/Asmgenproof.v b/powerpc/Asmgenproof.v
index 27b2108b..e7b73854 100644
--- a/powerpc/Asmgenproof.v
+++ b/powerpc/Asmgenproof.v
@@ -343,12 +343,21 @@ Proof.
Qed.
Hint Rewrite addimm_label: labels.
+Remark andimm_base_label:
+ forall r1 r2 n k, find_label lbl (andimm_base r1 r2 n k) = find_label lbl k.
+Proof.
+ intros; unfold andimm_base.
+ case (Int.eq (high_u n) Int.zero). reflexivity.
+ case (Int.eq (low_u n) Int.zero). reflexivity.
+ autorewrite with labels. reflexivity.
+Qed.
+Hint Rewrite andimm_base_label: labels.
+
Remark andimm_label:
forall r1 r2 n k, find_label lbl (andimm r1 r2 n k) = find_label lbl k.
Proof.
intros; unfold andimm.
- case (Int.eq (high_u n) Int.zero). reflexivity.
- case (Int.eq (low_u n) Int.zero). reflexivity.
+ case (is_rlw_mask n). reflexivity.
autorewrite with labels. reflexivity.
Qed.
Hint Rewrite andimm_label: labels.
@@ -371,6 +380,15 @@ Proof.
Qed.
Hint Rewrite xorimm_label: labels.
+Remark rolm_label:
+ forall r1 r2 amount mask k, find_label lbl (rolm r1 r2 amount mask k) = find_label lbl k.
+Proof.
+ intros; unfold rolm.
+ case (is_rlw_mask mask). reflexivity.
+ simpl. autorewrite with labels. auto.
+Qed.
+Hint Rewrite rolm_label: labels.
+
Remark loadind_label:
forall base ofs ty dst k, find_label lbl (loadind base ofs ty dst k) = find_label lbl k.
Proof.
@@ -405,7 +423,7 @@ Proof.
case (Int.eq (high_u i) Int.zero). reflexivity.
autorewrite with labels; reflexivity.
apply floatcomp_label. apply floatcomp_label.
- apply andimm_label. apply andimm_label.
+ apply andimm_base_label. apply andimm_base_label.
Qed.
Hint Rewrite transl_cond_label: labels.