mailing list of musl libc
 help / color / mirror / code / Atom feed
* More additions for the math/i386 subtree
@ 2019-12-10 21:48 Stefan Kanthak
  0 siblings, 0 replies; only message in thread
From: Stefan Kanthak @ 2019-12-10 21:48 UTC (permalink / raw)
  To: musl

Optimised branch-free implementations of fmax() and fmin() for i386

JFTR: I'm NOT subscribed to your mailing list, so CC: me in replies!

--- -/dev/null
+++ +/src/math/i386/fmax.S
@@ -0,0 +1,26 @@
+.global fmaxf
+.type fmaxf,@function
+fmaxf:
+        flds 4(%esp)
+        flds 8(%esp)
+        jmp 1f
+
+.global fmaxl
+.type fmaxl,@function
+fmaxl:
+        fldt 4(%esp)
+        fldt 16(%esp)
+        jmp 1f
+
+.global fmax
+.type fmax,@function
+fmax:
+        fldl 4(%esp)
+        fldl 12(%esp)
+1:      fucomi %st(0),%st(0)
+        fcmovu %st(1),%st(0)
+        fxch %st(1)
+        fucomi %st(1),%st(0)
+        fcmovu %st(1),%st(0)
+        fstp %st(1)
+        ret

--- -/dev/null
+++ +/src/math/i386/fmin.S
@@ -0,0 +1,26 @@
+.global fminf
+.type fminf,@function
+fminf:
+        flds 4(%esp)
+        flds 8(%esp)
+        jmp 1f
+
+.global fminl
+.type fminl,@function
+fminl:
+        fldt 4(%esp)
+        fldt 16(%esp)
+        jmp 1f
+
+.global fmin
+.type fmin,@function
+fmin:
+        fldl 4(%esp)
+        fldl 12(%esp)
+1:      fucomi %st(0),%st(0)
+        fcmovu %st(1),%st(0)
+        fucomi %st(1),%st(0)
+        fcmovu %st(1),%st(0)
+        fstp %st(1)
+        ret



^ permalink raw reply	[flat|nested] only message in thread

only message in thread, other threads:[~2019-12-10 21:48 UTC | newest]

Thread overview: (only message) (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2019-12-10 21:48 More additions for the math/i386 subtree Stefan Kanthak

Code repositories for project(s) associated with this public inbox

	https://git.vuxu.org/mirror/musl/

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).