summaryrefslogtreecommitdiff
path: root/newlib/libc/machine/necv70/fastmath.s
diff options
context:
space:
mode:
Diffstat (limited to 'newlib/libc/machine/necv70/fastmath.s')
-rw-r--r--newlib/libc/machine/necv70/fastmath.s251
1 files changed, 251 insertions, 0 deletions
diff --git a/newlib/libc/machine/necv70/fastmath.s b/newlib/libc/machine/necv70/fastmath.s
new file mode 100644
index 00000000000..bccb20f12cf
--- /dev/null
+++ b/newlib/libc/machine/necv70/fastmath.s
@@ -0,0 +1,251 @@
+ .globl _fast_sin
+_fast_sin:
+ fsin.l [ap],[ap]
+ mov.d [ap],r0
+ ret #0
+
+
+ .globl _fast_sinf
+_fast_sinf:
+ fsin.s [ap],[ap]
+ mov.w [ap],r0
+ ret #0
+
+
+ .globl _fast_cos
+_fast_cos:
+ fcos.l [ap],[ap]
+ mov.d [ap],r0
+ ret #0
+
+
+ .globl _fast_cosf
+_fast_cosf:
+ fcos.s [ap],[ap]
+ mov.w [ap],r0
+ ret #0
+
+
+ .globl _fast_tan
+_fast_tan:
+ ftan.l [ap],[ap]
+ mov.d [ap],r0
+ ret #0
+
+
+ .globl _fast_tanf
+_fast_tanf:
+ ftan.s [ap],[ap]
+ mov.w [ap],r0
+ ret #0
+
+
+
+ .globl _fast_fabs
+_fast_fabs:
+ fabs.l [ap],[ap]
+ mov.d [ap],r0
+ ret #0
+
+
+ .globl _fast_fabsf
+_fast_fabsf:
+ fabs.s [ap],[ap]
+ mov.w [ap],r0
+ ret #0
+
+
+ .globl _fast_sqrt
+_fast_sqrt:
+ fsqrt.l [ap],[ap]
+ mov.d [ap],r0
+ ret #0
+
+
+ .globl _fast_sqrtf
+_fast_sqrtf:
+ fsqrt.s [ap],[ap]
+ mov.w [ap],r0
+ ret #0
+
+
+ .globl _fast_acos
+_fast_acos:
+ facos.l [ap],[ap]
+ mov.d [ap],r0
+ ret #0
+
+
+ .globl _fast_acosf
+_fast_acosf:
+ facos.s [ap],[ap]
+ mov.w [ap],r0
+ ret #0
+
+
+ .globl _fast_asin
+_fast_asin:
+ fasin.l [ap],[ap]
+ mov.d [ap],r0
+ ret #0
+
+
+ .globl _fast_asinf
+_fast_asinf:
+ fasin.s [ap],[ap]
+ mov.w [ap],r0
+ ret #0
+
+
+ .globl _fast_atan
+_fast_atan:
+ fatan.l [ap],[ap]
+ mov.d [ap],r0
+ ret #0
+
+
+ .globl _fast_atanf
+_fast_atanf:
+ fatan.s [ap],[ap]
+ mov.w [ap],r0
+ ret #0
+
+
+ .globl _fast_cosh
+_fast_cosh:
+ fcosh.l [ap],[ap]
+ mov.d [ap],r0
+ ret #0
+
+
+ .globl _fast_coshf
+_fast_coshf:
+ fcosh.s [ap],[ap]
+ mov.w [ap],r0
+ ret #0
+
+
+ .globl _fast_sinh
+_fast_sinh:
+ fsin.l [ap],[ap]
+ mov.d [ap],r0
+ ret #0
+
+
+ .globl _fast_sinhf
+_fast_sinhf:
+ fsin.s [ap],[ap]
+ mov.w [ap],r0
+ ret #0
+
+
+ .globl _fast_tanh
+_fast_tanh:
+ ftanh.l [ap],[ap]
+ mov.d [ap],r0
+ ret #0
+
+
+ .globl _fast_tanhf
+_fast_tanhf:
+ ftanh.s [ap],[ap]
+ mov.w [ap],r0
+ ret #0
+
+
+ .globl _fast_atanh
+_fast_atanh:
+ fatanh.l [ap],[ap]
+ mov.d [ap],r0
+ ret #0
+
+
+ .globl _fast_atanhf
+_fast_atanhf:
+ fatanh.s [ap],[ap]
+ mov.w [ap],r0
+ ret #0
+
+ .globl _fast_exp2
+_fast_exp2:
+ fexp2.l [ap],[ap]
+ mov.d [ap],r0
+ ret #0
+
+
+ .globl _fast_exp2f
+_fast_exp2f:
+ fexp2.s [ap],[ap]
+ mov.w [ap],r0
+ ret #0
+
+
+ .globl _fast_exp10
+_fast_exp10:
+ fexp10.l [ap],[ap]
+ mov.d [ap],r0
+ ret #0
+
+
+ .globl _fast_exp10f
+_fast_exp10f:
+ fexp10.s [ap],[ap]
+ mov.w [ap],r0
+ ret #0
+
+
+ .globl _fast_expe
+_fast_expe:
+ fexpe.l [ap],[ap]
+ mov.d [ap],r0
+ ret #0
+
+
+ .globl _fast_expef
+_fast_expef:
+ fexpe.s [ap],[ap]
+ mov.w [ap],r0
+ ret #0
+
+
+ .globl _fast_log2
+_fast_log2:
+ flog2.l [ap],[ap]
+ mov.d [ap],r0
+ ret #0
+
+
+ .globl _fast_log2f
+_fast_log2f:
+ flog2.s [ap],[ap]
+ mov.w [ap],r0
+ ret #0
+
+ .globl _fast_log10
+_fast_log10:
+ flog10.l [ap],[ap]
+ mov.d [ap],r0
+ ret #0
+
+
+ .globl _fast_log10f
+_fast_log10f:
+ flog10.s [ap],[ap]
+ mov.w [ap],r0
+ ret #0
+
+
+ .globl _fast_loge
+_fast_loge:
+ floge.l [ap],[ap]
+ mov.d [ap],r0
+ ret #0
+
+
+ .globl _fast_logef
+_fast_logef:
+ floge.s [ap],[ap]
+ mov.w [ap],r0
+ ret #0
+
+