Browse Source

asm for remquo

this could perhaps use some additional testing for corner cases, but
it seems to be correct.
Rich Felker 13 năm trước cách đây
mục cha
commit
27deb53889
3 tập tin đã thay đổi với 43 bổ sung0 xóa
  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