diff options
Diffstat (limited to 'lib9/setfcr-DragonFly-386.c')
| -rw-r--r-- | lib9/setfcr-DragonFly-386.c | 56 |
1 files changed, 0 insertions, 56 deletions
diff --git a/lib9/setfcr-DragonFly-386.c b/lib9/setfcr-DragonFly-386.c deleted file mode 100644 index 3589dd80..00000000 --- a/lib9/setfcr-DragonFly-386.c +++ /dev/null @@ -1,56 +0,0 @@ -/* - * Linux 386 fpu support - * Mimic Plan9 floating point support - */ - -#include "lib9.h" - -void -setfcr(ulong fcr) -{ - __asm__( "xorb $0x3f, %%al\n\t" - "pushw %%ax\n\t" - "fwait\n\t" - "fldcw (%%esp)\n\t" - "popw %%ax\n\t" - : /* no output */ - : "al" (fcr) - ); -} - -ulong -getfcr(void) -{ - ulong fcr = 0; - - __asm__( "pushl %%eax\n\t" - "fwait\n\t" - "fstcw (%%esp)\n\t" - "popl %%eax\n\t" - "xorb $0x3f, %%al\n\t" - : "=a" (fcr) - : "eax" (fcr) - ); - return fcr; -} - -ulong -getfsr(void) -{ - ulong fsr = -1; - - __asm__( "fwait\n\t" - "fstsw (%%eax)\n\t" - "movl (%%eax), %%eax\n\t" - "andl $0xffff, %%eax\n\t" - : "=a" (fsr) - : "eax" (&fsr) - ); - return fsr; -} - -void -setfsr(ulong fsr) -{ - __asm__("fclex\n\t"); -} |
