aboutsummaryrefslogtreecommitdiffstats
path: root/x86/SelectOpproof.v
diff options
context:
space:
mode:
authorXavier Leroy <xavier.leroy@college-de-france.fr>2019-06-06 16:54:17 +0200
committerXavier Leroy <xavier.leroy@college-de-france.fr>2019-06-07 09:08:40 +0200
commitf92ca339e9d1851fa4d469cdc867bfe1719c42a1 (patch)
treea452b98f72a802972217b2615f4ce983a88e2f89 /x86/SelectOpproof.v
parentb3bfdc3655479f7f8f1c5e3a7571473a72b421cb (diff)
downloadcompcert-f92ca339e9d1851fa4d469cdc867bfe1719c42a1.tar.gz
compcert-f92ca339e9d1851fa4d469cdc867bfe1719c42a1.zip
x86: operators Ointoffloat and Ointofsingle are total
This matches the semantics of the corresponding machine instructions, and will help with branchless code.
Diffstat (limited to 'x86/SelectOpproof.v')
-rw-r--r--x86/SelectOpproof.v6
1 files changed, 4 insertions, 2 deletions
diff --git a/x86/SelectOpproof.v b/x86/SelectOpproof.v
index 908d6e4a..f7f043eb 100644
--- a/x86/SelectOpproof.v
+++ b/x86/SelectOpproof.v
@@ -811,7 +811,8 @@ Theorem eval_intoffloat:
Val.intoffloat x = Some y ->
exists v, eval_expr ge sp e m le (intoffloat a) v /\ Val.lessdef y v.
Proof.
- intros; unfold intoffloat. TrivialExists.
+ intros; unfold intoffloat. exists y; split; auto.
+ EvalOp. simpl; rewrite H0; auto.
Qed.
Theorem eval_floatofint:
@@ -909,7 +910,8 @@ Theorem eval_intofsingle:
Val.intofsingle x = Some y ->
exists v, eval_expr ge sp e m le (intofsingle a) v /\ Val.lessdef y v.
Proof.
- intros; unfold intofsingle. TrivialExists.
+ intros; unfold intoffloat. exists y; split; auto.
+ EvalOp. simpl; rewrite H0; auto.
Qed.
Theorem eval_singleofint: