these are functions that have direct fpu approaches to implementation
without problematic exception or rounding issues. x86_64 lacks
float/double versions because i'm unfamiliar with the necessary sse
code for performing these operations.
--- /dev/null
+.global fabs
+.type fabs,@function
+fabs:
+ fldl 4(%esp)
+ fabs
+ ret
--- /dev/null
+.global fabsf
+.type fabsf,@function
+fabsf:
+ flds 4(%esp)
+ fabs
+ ret
--- /dev/null
+.global fabsl
+.type fabsl,@function
+fabsl:
+ fldt 4(%esp)
+ fabs
+ ret
--- /dev/null
+.global rint
+.type rint,@function
+rint:
+ fldl 4(%esp)
+ frndint
+ ret
--- /dev/null
+.global rintf
+.type rintf,@function
+rintf:
+ flds 4(%esp)
+ frndint
+ ret
--- /dev/null
+.global rintl
+.type rintl,@function
+rintl:
+ fldt 4(%esp)
+ frndint
+ ret
--- /dev/null
+.global fabsl
+.type fabsl,@function
+fabsl:
+ fldt 8(%rsp)
+ fabs
+ ret
--- /dev/null
+.global rintl
+.type rintl,@function
+rintl:
+ fldt 8(%rsp)
+ frndint
+ ret