summaryrefslogtreecommitdiff
path: root/backend/Selection.v
diff options
context:
space:
mode:
Diffstat (limited to 'backend/Selection.v')
-rw-r--r--backend/Selection.v15
1 files changed, 15 insertions, 0 deletions
diff --git a/backend/Selection.v b/backend/Selection.v
index f62a888..9bd37ef 100644
--- a/backend/Selection.v
+++ b/backend/Selection.v
@@ -70,6 +70,7 @@ Definition sel_constant (cst: Cminor.constant) : expr :=
match cst with
| Cminor.Ointconst n => Eop (Ointconst n) Enil
| Cminor.Ofloatconst f => Eop (Ofloatconst f) Enil
+ | Cminor.Osingleconst f => Eop (Osingleconst f) Enil
| Cminor.Olongconst n => longconst n
| Cminor.Oaddrsymbol id ofs => addrsymbol id ofs
| Cminor.Oaddrstack ofs => addrstack ofs
@@ -85,11 +86,18 @@ Definition sel_unop (op: Cminor.unary_operation) (arg: expr) : expr :=
| Cminor.Onotint => notint arg
| Cminor.Onegf => negf arg
| Cminor.Oabsf => absf arg
+ | Cminor.Onegfs => negfs arg
+ | Cminor.Oabsfs => absfs arg
| Cminor.Osingleoffloat => singleoffloat arg
+ | Cminor.Ofloatofsingle => floatofsingle arg
| Cminor.Ointoffloat => intoffloat arg
| Cminor.Ointuoffloat => intuoffloat arg
| Cminor.Ofloatofint => floatofint arg
| Cminor.Ofloatofintu => floatofintu arg
+ | Cminor.Ointofsingle => intofsingle arg
+ | Cminor.Ointuofsingle => intuofsingle arg
+ | Cminor.Osingleofint => singleofint arg
+ | Cminor.Osingleofintu => singleofintu arg
| Cminor.Onegl => negl hf arg
| Cminor.Onotl => notl arg
| Cminor.Ointoflong => intoflong arg
@@ -99,6 +107,8 @@ Definition sel_unop (op: Cminor.unary_operation) (arg: expr) : expr :=
| Cminor.Olonguoffloat => longuoffloat hf arg
| Cminor.Ofloatoflong => floatoflong hf arg
| Cminor.Ofloatoflongu => floatoflongu hf arg
+ | Cminor.Olongofsingle => longofsingle hf arg
+ | Cminor.Olonguofsingle => longuofsingle hf arg
| Cminor.Osingleoflong => singleoflong hf arg
| Cminor.Osingleoflongu => singleoflongu hf arg
end.
@@ -122,6 +132,10 @@ Definition sel_binop (op: Cminor.binary_operation) (arg1 arg2: expr) : expr :=
| Cminor.Osubf => subf arg1 arg2
| Cminor.Omulf => mulf arg1 arg2
| Cminor.Odivf => divf arg1 arg2
+ | Cminor.Oaddfs => addfs arg1 arg2
+ | Cminor.Osubfs => subfs arg1 arg2
+ | Cminor.Omulfs => mulfs arg1 arg2
+ | Cminor.Odivfs => divfs arg1 arg2
| Cminor.Oaddl => addl hf arg1 arg2
| Cminor.Osubl => subl hf arg1 arg2
| Cminor.Omull => mull hf arg1 arg2
@@ -138,6 +152,7 @@ Definition sel_binop (op: Cminor.binary_operation) (arg1 arg2: expr) : expr :=
| Cminor.Ocmp c => comp c arg1 arg2
| Cminor.Ocmpu c => compu c arg1 arg2
| Cminor.Ocmpf c => compf c arg1 arg2
+ | Cminor.Ocmpfs c => compfs c arg1 arg2
| Cminor.Ocmpl c => cmpl c arg1 arg2
| Cminor.Ocmplu c => cmplu c arg1 arg2
end.