l64fpu.S 740 B

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253
  1. /*
  2. * SIMD Floating Point.
  3. * Note: for x87 instructions which have both a 'wait' and 'nowait' version,
  4. * 8a only knows the 'wait' mnemonic but does NOT insertthe WAIT prefix byte
  5. * (i.e. they act like their FNxxx variations) so WAIT instructions must be
  6. * explicitly placed in the code if necessary.
  7. */
  8. .globl _clts
  9. _clts:
  10. CLTS
  11. ret
  12. .globl _fldcw
  13. _fldcw:
  14. fldcw (%rdi)
  15. ret
  16. .globl _fnclex
  17. _fnclex:
  18. FCLEX
  19. ret
  20. .globl _fninit
  21. _fninit:
  22. FINIT /* no WAIT */
  23. ret
  24. .globl _fxrstor
  25. _fxrstor:
  26. FXRSTOR64 0(%rdi)
  27. ret
  28. .globl _fxsave
  29. _fxsave:
  30. FXSAVE64 0(%rdi)
  31. ret
  32. .globl _fwait
  33. _fwait:
  34. WAIT
  35. ret
  36. .globl _ldmxcsr
  37. _ldmxcsr:
  38. LDMXCSR (%rdi)
  39. ret
  40. .globl _stts
  41. _stts:
  42. MOVQ %CR0, %rax
  43. ORQ $8, %rax /* Ts */
  44. MOVQ %rax, %CR0
  45. ret