Explorar el Código

asm for remquo

this could perhaps use some additional testing for corner cases, but
it seems to be correct.
Rich Felker hace 13 años
padre
commit
27deb53889
Se han modificado 3 ficheros con 43 adiciones y 0 borrados
  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