diff options
author | Xavier Leroy <xavier.leroy@college-de-france.fr> | 2019-06-06 16:54:17 +0200 |
---|---|---|
committer | Xavier Leroy <xavier.leroy@college-de-france.fr> | 2019-06-07 09:08:40 +0200 |
commit | f92ca339e9d1851fa4d469cdc867bfe1719c42a1 (patch) | |
tree | a452b98f72a802972217b2615f4ce983a88e2f89 /x86/SelectOpproof.v | |
parent | b3bfdc3655479f7f8f1c5e3a7571473a72b421cb (diff) | |
download | compcert-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.v | 6 |
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: |