getfcr.s 816 B

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657
  1. #define EXCB WORD $0x60000400 /* until 7a/7l catch up */
  2. TEXT getfsr(SB), $8
  3. EXCB
  4. MOVT FPCR, F0
  5. EXCB
  6. MOVT F0, tmp-8(SP)
  7. MOVL tmp-4(SP), R1
  8. MOVQ $0x01e00000, R2
  9. AND R2, R1, R0
  10. RET
  11. TEXT setfsr(SB), $8
  12. MOVQ $0x01e00000, R2
  13. EXCB
  14. MOVT FPCR, F0
  15. EXCB
  16. MOVT F0, tmp-8(SP)
  17. MOVL tmp-4(SP), R1
  18. ANDNOT R2, R1, R3
  19. AND R2, R0, R4
  20. OR R3, R4, R5
  21. MOVL R5, tmp-4(SP)
  22. MOVT tmp-8(SP), F0
  23. EXCB
  24. MOVT F0, FPCR
  25. EXCB
  26. RET
  27. TEXT getfcr(SB), $8
  28. EXCB
  29. MOVT FPCR, F0
  30. EXCB
  31. MOVT F0, tmp-8(SP)
  32. MOVL tmp-4(SP), R1
  33. MOVQ $0x700c0000, R2
  34. AND R2, R1, R0
  35. XOR R2, R0
  36. RET
  37. TEXT setfcr(SB), $8
  38. MOVQ $0x700c0000, R2
  39. XOR R2, R0
  40. EXCB
  41. MOVT FPCR, F0
  42. EXCB
  43. MOVT F0, tmp-8(SP)
  44. MOVL tmp-4(SP), R1
  45. ANDNOT R2, R1, R3
  46. AND R2, R0, R4
  47. OR R3, R4, R5
  48. MOVL R5, tmp-4(SP)
  49. MOVT tmp-8(SP), F0
  50. EXCB
  51. MOVT F0, FPCR
  52. EXCB
  53. RET