aboutsummaryrefslogtreecommitdiffstats
path: root/backend/Selection.v
diff options
context:
space:
mode:
authorDavid Monniaux <david.monniaux@univ-grenoble-alpes.fr>2019-04-03 20:19:24 +0200
committerDavid Monniaux <david.monniaux@univ-grenoble-alpes.fr>2019-04-03 20:19:24 +0200
commit2dca62f38463b0ebce24fff50666c846df50488e (patch)
tree356c1eeb4d084002efd5ea28fdd83ecdf7ed960b /backend/Selection.v
parent616f939e3ac7ff052f0eb7bce8c16873730ddf0e (diff)
downloadcompcert-kvx-2dca62f38463b0ebce24fff50666c846df50488e.tar.gz
compcert-kvx-2dca62f38463b0ebce24fff50666c846df50488e.zip
attempts at generating builtins, start
Diffstat (limited to 'backend/Selection.v')
-rw-r--r--backend/Selection.v9
1 files changed, 6 insertions, 3 deletions
diff --git a/backend/Selection.v b/backend/Selection.v
index 05a06abf..27c5bd10 100644
--- a/backend/Selection.v
+++ b/backend/Selection.v
@@ -267,6 +267,11 @@ Definition sel_switch_long :=
(fun arg ofs => subl arg (longconst (Int64.repr ofs)))
lowlong.
+Definition sel_builtin optid ef args :=
+ Sbuiltin (sel_builtin_res optid) ef
+ (sel_builtin_args args
+ (Machregs.builtin_constraints ef)).
+
(** Conversion from Cminor statements to Cminorsel statements. *)
Fixpoint sel_stmt (s: Cminor.stmt) : res stmt :=
@@ -278,9 +283,7 @@ Fixpoint sel_stmt (s: Cminor.stmt) : res stmt :=
OK (match classify_call fn with
| Call_default => Scall optid sg (inl _ (sel_expr fn)) (sel_exprlist args)
| Call_imm id => Scall optid sg (inr _ id) (sel_exprlist args)
- | Call_builtin ef => Sbuiltin (sel_builtin_res optid) ef
- (sel_builtin_args args
- (Machregs.builtin_constraints ef))
+ | Call_builtin ef => sel_builtin optid ef args
end)
| Cminor.Sbuiltin optid ef args =>
OK (Sbuiltin (sel_builtin_res optid) ef