Sfoglia il codice sorgente

asm for remquo

this could perhaps use some additional testing for corner cases, but
it seems to be correct.
Rich Felker 13 anni fa
parent
commit
27deb53889
3 ha cambiato i file con 43 aggiunte e 0 eliminazioni
  1. 41 0
      src/math/i386/remquo.s
  2. 1 0
      src/math/i386/remquof.s
  3. 1 0
      src/math/i386/remquol.s

+ 41 - 0
src/math/i386/remquo.s

@@ -0,0 +1,41 @@
+.global remquof
+.type remquof,@function
+remquof:
+	mov 12(%esp),%ecx
+	fldl 4(%esp)
+	fldl 8(%esp)
+	jmp 1f
+
+.global remquol
+.type remquol,@function
+remquol:
+	mov 28(%esp),%ecx
+	fldl 4(%esp)
+	fldl 16(%esp)
+	jmp 1f
+
+.global remquo
+.type remquo,@function
+remquo:
+	mov 20(%esp),%ecx
+	fldl 4(%esp)
+	fldl 12(%esp)
+1:	fld %st(1)
+1:      fprem1
+	fnstsw %ax
+	sahf
+	jp 1b
+	fsubr %st(0),%st(2)
+	fxch %st(2)
+	fdivp
+	mov $0x4f000000,%eax
+	mov %eax,4(%esp)
+	flds 4(%esp)
+	fxch %st(1)
+1:	fprem
+	fnstsw %ax
+	sahf
+	jp 1b
+	fistpl (%ecx)
+	fstp %st(0)
+	ret

+ 1 - 0
src/math/i386/remquof.s

@@ -0,0 +1 @@
+# see remquo.s

+ 1 - 0
src/math/i386/remquol.s

@@ -0,0 +1 @@
+# see remquo.s