aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorDavid Monniaux <david.monniaux@univ-grenoble-alpes.fr>2019-08-29 21:46:52 +0200
committerDavid Monniaux <david.monniaux@univ-grenoble-alpes.fr>2019-08-29 21:46:52 +0200
commitc0984982ea5b8481bfc75c0ea4254eb5db07d875 (patch)
tree8dd5a870a080f0866f5ce24698840c422d150cb7
parent51094cecd5d24023e3de2487e66765f8c54b5fcc (diff)
downloadcompcert-kvx-c0984982ea5b8481bfc75c0ea4254eb5db07d875.tar.gz
compcert-kvx-c0984982ea5b8481bfc75c0ea4254eb5db07d875.zip
fabsf
-rw-r--r--mppa_k1c/Builtins1.v7
-rw-r--r--mppa_k1c/CBuiltins.ml3
-rw-r--r--mppa_k1c/SelectOp.vp1
3 files changed, 10 insertions, 1 deletions
diff --git a/mppa_k1c/Builtins1.v b/mppa_k1c/Builtins1.v
index 73d1bcf4..5187ea7d 100644
--- a/mppa_k1c/Builtins1.v
+++ b/mppa_k1c/Builtins1.v
@@ -23,7 +23,8 @@ Inductive platform_builtin : Type :=
| BI_fmin
| BI_fmax
| BI_fminf
-| BI_fmaxf.
+| BI_fmaxf
+| BI_fabsf.
Local Open Scope string_scope.
@@ -32,6 +33,7 @@ Definition platform_builtin_table : list (string * platform_builtin) :=
:: ("__builtin_fmax", BI_fmax)
:: ("__builtin_fminf", BI_fminf)
:: ("__builtin_fmaxf", BI_fmaxf)
+ :: ("__builtin_fabsf", BI_fabsf)
:: nil.
Definition platform_builtin_sig (b: platform_builtin) : signature :=
@@ -40,6 +42,8 @@ Definition platform_builtin_sig (b: platform_builtin) : signature :=
mksignature (Tfloat :: Tfloat :: nil) (Some Tfloat) cc_default
| BI_fminf | BI_fmaxf =>
mksignature (Tsingle :: Tsingle :: nil) (Some Tsingle) cc_default
+ | BI_fabsf =>
+ mksignature (Tsingle :: nil) (Some Tsingle) cc_default
end.
Definition platform_builtin_sem (b: platform_builtin) : builtin_sem (proj_sig_res (platform_builtin_sig b)) :=
@@ -48,4 +52,5 @@ Definition platform_builtin_sem (b: platform_builtin) : builtin_sem (proj_sig_re
| BI_fmax => mkbuiltin_n2t Tfloat Tfloat Tfloat ExtFloat.max
| BI_fminf => mkbuiltin_n2t Tsingle Tsingle Tsingle ExtFloat32.min
| BI_fmaxf => mkbuiltin_n2t Tsingle Tsingle Tsingle ExtFloat32.max
+ | BI_fabsf => mkbuiltin_n1t Tsingle Tsingle Float32.abs
end.
diff --git a/mppa_k1c/CBuiltins.ml b/mppa_k1c/CBuiltins.ml
index 43f3d98c..c0022cb1 100644
--- a/mppa_k1c/CBuiltins.ml
+++ b/mppa_k1c/CBuiltins.ml
@@ -115,6 +115,9 @@ let builtins = {
"__builtin_fnmsub",
(TFloat(FDouble, []),
[TFloat(FDouble, []); TFloat(FDouble, []); TFloat(FDouble, [])], false); *)
+ "__builtin_fabsf",
+ (TFloat(FFloat, []),
+ [TFloat(FFloat, [])], false);
"__builtin_fmax",
(TFloat(FDouble, []),
[TFloat(FDouble, []); TFloat(FDouble, [])], false);
diff --git a/mppa_k1c/SelectOp.vp b/mppa_k1c/SelectOp.vp
index 72597a2b..c8139ecb 100644
--- a/mppa_k1c/SelectOp.vp
+++ b/mppa_k1c/SelectOp.vp
@@ -680,6 +680,7 @@ Definition platform_builtin (b: platform_builtin) (args: exprlist) : option expr
| BI_fmax => Some (Eop Omaxf args)
| BI_fminf => Some (Eop Ominfs args)
| BI_fmaxf => Some (Eop Omaxfs args)
+ | BI_fabsf => Some (Eop Oabsfs args)
end.
(* Local Variables: *)