setfcr-Solaris-sparc.c 566 B

123456789101112131415161718192021222324252627282930313233343536373839404142
  1. /* This code is a little awkward. If somebody who understands Solaris
  2. better would tell me an idiomatic way to invoke equivalent
  3. behavior, I'd be grateful. ehg@bell-labs.com */
  4. #include "lib9.h"
  5. ulong
  6. getfcr(void)
  7. {
  8. ulong v;
  9. asm(" st %fsr, [%fp-8]");
  10. return v;
  11. }
  12. void
  13. setfcr(ulong v)
  14. {
  15. ulong vv;
  16. vv = (getfcr() & ~FPFCR) | (v & FPFCR);
  17. asm(" ld [%fp-4], %fsr");
  18. }
  19. ulong
  20. getfsr(void)
  21. {
  22. ulong v;
  23. asm(" st %fsr, [%fp-8]");
  24. return v;
  25. }
  26. void
  27. setfsr(ulong v)
  28. {
  29. ulong vv;
  30. vv = (getfsr() & ~FPFSR) | (v & FPFSR);
  31. asm(" ld [%fp-4], %fsr");
  32. }