aboutsummaryrefslogtreecommitdiffstats
path: root/mppa_k1c/Op.v
diff options
context:
space:
mode:
authorDavid Monniaux <david.monniaux@univ-grenoble-alpes.fr>2019-08-30 10:10:06 +0200
committerDavid Monniaux <david.monniaux@univ-grenoble-alpes.fr>2019-08-30 10:10:06 +0200
commitcfc681ae18c59f4a19143a7245be23eb6a4045a0 (patch)
tree9de825a02fe2abd027cad7cb142c1220b7c5035f /mppa_k1c/Op.v
parentc0984982ea5b8481bfc75c0ea4254eb5db07d875 (diff)
downloadcompcert-kvx-cfc681ae18c59f4a19143a7245be23eb6a4045a0.tar.gz
compcert-kvx-cfc681ae18c59f4a19143a7245be23eb6a4045a0.zip
add finvw ; not yet generated
Diffstat (limited to 'mppa_k1c/Op.v')
-rw-r--r--mppa_k1c/Op.v7
1 files changed, 7 insertions, 0 deletions
diff --git a/mppa_k1c/Op.v b/mppa_k1c/Op.v
index 4beef520..de372157 100644
--- a/mppa_k1c/Op.v
+++ b/mppa_k1c/Op.v
@@ -189,6 +189,7 @@ Inductive operation : Type :=
| Odivfs (**r [rd = r1 / r2] *)
| Ominfs
| Omaxfs
+ | Oinvfs
| Osingleoffloat (**r [rd] is [r1] truncated to single-precision float *)
| Ofloatofsingle (**r [rd] is [r1] extended to double-precision float *)
(*c Conversions between int and float: *)
@@ -440,6 +441,7 @@ Definition eval_operation
| Odivfs, v1::v2::nil => Some (Val.divfs v1 v2)
| Ominfs, v1::v2::nil => Some (ExtValues.minfs v1 v2)
| Omaxfs, v1::v2::nil => Some (ExtValues.maxfs v1 v2)
+ | Oinvfs, v1::nil => Some (ExtValues.invfs v1)
| Osingleoffloat, v1::nil => Some (Val.singleoffloat v1)
| Ofloatofsingle, v1::nil => Some (Val.floatofsingle v1)
| Ointoffloat, v1::nil => Val.intoffloat v1
@@ -652,6 +654,7 @@ Definition type_of_operation (op: operation) : list typ * typ :=
| Odivfs
| Ominfs
| Omaxfs => (Tsingle :: Tsingle :: nil, Tsingle)
+ | Oinvfs => (Tsingle :: nil, Tsingle)
| Osingleoffloat => (Tfloat :: nil, Tsingle)
| Ofloatofsingle => (Tsingle :: nil, Tfloat)
| Ointoffloat => (Tfloat :: nil, Tint)
@@ -933,6 +936,8 @@ Proof with (try exact I; try reflexivity; auto using Val.Vptr_has_type).
(* minfs, maxfs *)
- destruct v0; destruct v1...
- destruct v0; destruct v1...
+ (* invfs *)
+ - destruct v0...
(* singleoffloat, floatofsingle *)
- destruct v0...
- destruct v0...
@@ -1550,6 +1555,8 @@ Proof.
(* minfs, maxfs *)
- inv H4; inv H2; simpl; auto.
- inv H4; inv H2; simpl; auto.
+ (* invfs *)
+ - inv H4; simpl; auto.
(* singleoffloat, floatofsingle *)
- inv H4; simpl; auto.
- inv H4; simpl; auto.