asm-fpu.h 2.0 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879
  1. /*
  2. * Copyright (c) 2006-2023, RT-Thread Development Team
  3. *
  4. * SPDX-License-Identifier: Apache-2.0
  5. *
  6. * Change Logs:
  7. * Date Author Notes
  8. * 2021-05-18 Jesven the first version
  9. * 2023-07-13 GuEe-GUI append Q16 ~ Q31
  10. */
  11. .macro SAVE_FPU, reg
  12. STR Q0, [\reg, #-0x10]!
  13. STR Q1, [\reg, #-0x10]!
  14. STR Q2, [\reg, #-0x10]!
  15. STR Q3, [\reg, #-0x10]!
  16. STR Q4, [\reg, #-0x10]!
  17. STR Q5, [\reg, #-0x10]!
  18. STR Q6, [\reg, #-0x10]!
  19. STR Q7, [\reg, #-0x10]!
  20. STR Q8, [\reg, #-0x10]!
  21. STR Q9, [\reg, #-0x10]!
  22. STR Q10, [\reg, #-0x10]!
  23. STR Q11, [\reg, #-0x10]!
  24. STR Q12, [\reg, #-0x10]!
  25. STR Q13, [\reg, #-0x10]!
  26. STR Q14, [\reg, #-0x10]!
  27. STR Q15, [\reg, #-0x10]!
  28. STR Q16, [\reg, #-0x10]!
  29. STR Q17, [\reg, #-0x10]!
  30. STR Q18, [\reg, #-0x10]!
  31. STR Q19, [\reg, #-0x10]!
  32. STR Q20, [\reg, #-0x10]!
  33. STR Q21, [\reg, #-0x10]!
  34. STR Q22, [\reg, #-0x10]!
  35. STR Q23, [\reg, #-0x10]!
  36. STR Q24, [\reg, #-0x10]!
  37. STR Q25, [\reg, #-0x10]!
  38. STR Q26, [\reg, #-0x10]!
  39. STR Q27, [\reg, #-0x10]!
  40. STR Q28, [\reg, #-0x10]!
  41. STR Q29, [\reg, #-0x10]!
  42. STR Q30, [\reg, #-0x10]!
  43. STR Q31, [\reg, #-0x10]!
  44. .endm
  45. .macro RESTORE_FPU, reg
  46. LDR Q31, [\reg], #0x10
  47. LDR Q30, [\reg], #0x10
  48. LDR Q29, [\reg], #0x10
  49. LDR Q28, [\reg], #0x10
  50. LDR Q27, [\reg], #0x10
  51. LDR Q26, [\reg], #0x10
  52. LDR Q25, [\reg], #0x10
  53. LDR Q24, [\reg], #0x10
  54. LDR Q23, [\reg], #0x10
  55. LDR Q22, [\reg], #0x10
  56. LDR Q21, [\reg], #0x10
  57. LDR Q20, [\reg], #0x10
  58. LDR Q19, [\reg], #0x10
  59. LDR Q18, [\reg], #0x10
  60. LDR Q17, [\reg], #0x10
  61. LDR Q16, [\reg], #0x10
  62. LDR Q15, [\reg], #0x10
  63. LDR Q14, [\reg], #0x10
  64. LDR Q13, [\reg], #0x10
  65. LDR Q12, [\reg], #0x10
  66. LDR Q11, [\reg], #0x10
  67. LDR Q10, [\reg], #0x10
  68. LDR Q9, [\reg], #0x10
  69. LDR Q8, [\reg], #0x10
  70. LDR Q7, [\reg], #0x10
  71. LDR Q6, [\reg], #0x10
  72. LDR Q5, [\reg], #0x10
  73. LDR Q4, [\reg], #0x10
  74. LDR Q3, [\reg], #0x10
  75. LDR Q2, [\reg], #0x10
  76. LDR Q1, [\reg], #0x10
  77. LDR Q0, [\reg], #0x10
  78. .endm