summaryrefslogtreecommitdiff
path: root/backend/Cminor.v
diff options
context:
space:
mode:
Diffstat (limited to 'backend/Cminor.v')
-rw-r--r--backend/Cminor.v14
1 files changed, 9 insertions, 5 deletions
diff --git a/backend/Cminor.v b/backend/Cminor.v
index 6b36b4d..9f7244b 100644
--- a/backend/Cminor.v
+++ b/backend/Cminor.v
@@ -49,7 +49,7 @@ Inductive unary_operation : Type :=
| Onotint: unary_operation (**r bitwise complement *)
| Onegf: unary_operation (**r float opposite *)
| Oabsf: unary_operation (**r float absolute value *)
- | Osingleoffloat: unary_operation (**r float truncation *)
+ | Osingleoffloat: unary_operation (**r float truncation to float32 *)
| Ointoffloat: unary_operation (**r signed integer to float *)
| Ointuoffloat: unary_operation (**r unsigned integer to float *)
| Ofloatofint: unary_operation (**r float to signed integer *)
@@ -59,10 +59,12 @@ Inductive unary_operation : Type :=
| Ointoflong: unary_operation (**r long to int *)
| Olongofint: unary_operation (**r signed int to long *)
| Olongofintu: unary_operation (**r unsigned int to long *)
- | Olongoffloat: unary_operation (**r signed long to float *)
- | Olonguoffloat: unary_operation (**r unsigned long to float *)
- | Ofloatoflong: unary_operation (**r float to signed long *)
- | Ofloatoflongu: unary_operation. (**r float to unsigned long *)
+ | Olongoffloat: unary_operation (**r float to signed long *)
+ | Olonguoffloat: unary_operation (**r float to unsigned long *)
+ | Ofloatoflong: unary_operation (**r signed long to float *)
+ | Ofloatoflongu: unary_operation (**r unsigned long to float *)
+ | Osingleoflong: unary_operation (**r signed long to float32 *)
+ | Osingleoflongu: unary_operation. (**r unsigned long to float32 *)
Inductive binary_operation : Type :=
| Oadd: binary_operation (**r integer addition *)
@@ -271,6 +273,8 @@ Definition eval_unop (op: unary_operation) (arg: val) : option val :=
| Olonguoffloat => Val.longuoffloat arg
| Ofloatoflong => Val.floatoflong arg
| Ofloatoflongu => Val.floatoflongu arg
+ | Osingleoflong => Val.singleoflong arg
+ | Osingleoflongu => Val.singleoflongu arg
end.
Definition eval_binop