asm-fpu.h 2.1 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283
  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. #ifndef __ARM64_ASM_FPU_H__
  12. #define __ARM64_ASM_FPU_H__
  13. .macro SAVE_FPU, reg
  14. str q0, [\reg, #-0x10]!
  15. str q1, [\reg, #-0x10]!
  16. str q2, [\reg, #-0x10]!
  17. str q3, [\reg, #-0x10]!
  18. str q4, [\reg, #-0x10]!
  19. str q5, [\reg, #-0x10]!
  20. str q6, [\reg, #-0x10]!
  21. str q7, [\reg, #-0x10]!
  22. str q8, [\reg, #-0x10]!
  23. str q9, [\reg, #-0x10]!
  24. str q10, [\reg, #-0x10]!
  25. str q11, [\reg, #-0x10]!
  26. str q12, [\reg, #-0x10]!
  27. str q13, [\reg, #-0x10]!
  28. str q14, [\reg, #-0x10]!
  29. str q15, [\reg, #-0x10]!
  30. str q16, [\reg, #-0x10]!
  31. str q17, [\reg, #-0x10]!
  32. str q18, [\reg, #-0x10]!
  33. str q19, [\reg, #-0x10]!
  34. str q20, [\reg, #-0x10]!
  35. str q21, [\reg, #-0x10]!
  36. str q22, [\reg, #-0x10]!
  37. str q23, [\reg, #-0x10]!
  38. str q24, [\reg, #-0x10]!
  39. str q25, [\reg, #-0x10]!
  40. str q26, [\reg, #-0x10]!
  41. str q27, [\reg, #-0x10]!
  42. str q28, [\reg, #-0x10]!
  43. str q29, [\reg, #-0x10]!
  44. str q30, [\reg, #-0x10]!
  45. str q31, [\reg, #-0x10]!
  46. .endm
  47. .macro RESTORE_FPU, reg
  48. ldr q31, [\reg], #0x10
  49. ldr q30, [\reg], #0x10
  50. ldr q29, [\reg], #0x10
  51. ldr q28, [\reg], #0x10
  52. ldr q27, [\reg], #0x10
  53. ldr q26, [\reg], #0x10
  54. ldr q25, [\reg], #0x10
  55. ldr q24, [\reg], #0x10
  56. ldr q23, [\reg], #0x10
  57. ldr q22, [\reg], #0x10
  58. ldr q21, [\reg], #0x10
  59. ldr q20, [\reg], #0x10
  60. ldr q19, [\reg], #0x10
  61. ldr q18, [\reg], #0x10
  62. ldr q17, [\reg], #0x10
  63. ldr q16, [\reg], #0x10
  64. ldr q15, [\reg], #0x10
  65. ldr q14, [\reg], #0x10
  66. ldr q13, [\reg], #0x10
  67. ldr q12, [\reg], #0x10
  68. ldr q11, [\reg], #0x10
  69. ldr q10, [\reg], #0x10
  70. ldr q9, [\reg], #0x10
  71. ldr q8, [\reg], #0x10
  72. ldr q7, [\reg], #0x10
  73. ldr q6, [\reg], #0x10
  74. ldr q5, [\reg], #0x10
  75. ldr q4, [\reg], #0x10
  76. ldr q3, [\reg], #0x10
  77. ldr q2, [\reg], #0x10
  78. ldr q1, [\reg], #0x10
  79. ldr q0, [\reg], #0x10
  80. .endm
  81. #endif /* __ARM64_ASM_FPU_H__ */