diff options
author | David Monniaux <david.monniaux@univ-grenoble-alpes.fr> | 2019-08-29 21:46:52 +0200 |
---|---|---|
committer | David Monniaux <david.monniaux@univ-grenoble-alpes.fr> | 2019-08-29 21:46:52 +0200 |
commit | c0984982ea5b8481bfc75c0ea4254eb5db07d875 (patch) | |
tree | 8dd5a870a080f0866f5ce24698840c422d150cb7 | |
parent | 51094cecd5d24023e3de2487e66765f8c54b5fcc (diff) | |
download | compcert-kvx-c0984982ea5b8481bfc75c0ea4254eb5db07d875.tar.gz compcert-kvx-c0984982ea5b8481bfc75c0ea4254eb5db07d875.zip |
fabsf
-rw-r--r-- | mppa_k1c/Builtins1.v | 7 | ||||
-rw-r--r-- | mppa_k1c/CBuiltins.ml | 3 | ||||
-rw-r--r-- | mppa_k1c/SelectOp.vp | 1 |
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: *) |