setfcr-Linux-386.S 420 B

12345678910111213141516171819202122232425262728293031323334
  1. #define FN(x) .type x,@function; .global x; x
  2. #define ENT subl $16, %esp
  3. #define RET addl $16, %esp; ret
  4. .file "setfcr-Linux-386.S"
  5. FN(setfcr):
  6. ENT
  7. xorb $0x3f, %al
  8. movl %eax, (%esp)
  9. fwait
  10. fldcw (%esp)
  11. RET
  12. FN(getfcr):
  13. ENT
  14. fwait
  15. fstcw (%esp)
  16. movw (%esp), %ax
  17. andl $0xffff, %eax
  18. xorb $0x3f, %al
  19. RET
  20. FN(getfsr):
  21. ENT
  22. fwait
  23. fstsw (%esp)
  24. movw (%esp), %ax
  25. andl $0xffff, %eax
  26. RET
  27. FN(setfsr):
  28. fclex
  29. ret