microblaze.inc 3.0 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109
  1. /*
  2. * Copyright (c) 2006-2022, RT-Thread Development Team
  3. *
  4. * SPDX-License-Identifier: Apache-2.0
  5. *
  6. * Change Logs:
  7. * Date Author Notes
  8. * 2011-12-17 nl1031 first implementation for MicroBlaze.
  9. */
  10. .equ STACK_RMSR, 0x00
  11. .equ STACK_R02, 0x04
  12. .equ STACK_R03, 0x08
  13. .equ STACK_R04, 0x0C
  14. .equ STACK_R05, 0x10
  15. .equ STACK_R06, 0x14
  16. .equ STACK_R07, 0x18
  17. .equ STACK_R08, 0x1C
  18. .equ STACK_R09, 0x20
  19. .equ STACK_R10, 0x24
  20. .equ STACK_R11, 0x28
  21. .equ STACK_R12, 0x2C
  22. .equ STACK_R13, 0x30
  23. .equ STACK_R14, 0x34
  24. .equ STACK_R15, 0x38
  25. .equ STACK_R17, 0x3C
  26. .equ STACK_R18, 0x40
  27. .equ STACK_R19, 0x44
  28. .equ STACK_R20, 0x48
  29. .equ STACK_R21, 0x4C
  30. .equ STACK_R22, 0x50
  31. .equ STACK_R23, 0x54
  32. .equ STACK_R24, 0x58
  33. .equ STACK_R25, 0x5C
  34. .equ STACK_R26, 0x60
  35. .equ STACK_R27, 0x64
  36. .equ STACK_R28, 0x68
  37. .equ STACK_R29, 0x6C
  38. .equ STACK_R30, 0x70
  39. .equ STACK_R31, 0x74
  40. .equ STACK_SIZE, 0x78
  41. .equ IE_BIT, 0x02
  42. .macro PUSH_ALL
  43. ADDIK r1, r1, -STACK_SIZE
  44. SWI r2, r1, STACK_R02
  45. SWI r3, r1, STACK_R03
  46. SWI r4, r1, STACK_R04
  47. SWI r5, r1, STACK_R05
  48. SWI r6, r1, STACK_R06
  49. SWI r7, r1, STACK_R07
  50. SWI r8, r1, STACK_R08
  51. SWI r9, r1, STACK_R09
  52. SWI r10, r1, STACK_R10
  53. SWI r11, r1, STACK_R11
  54. SWI r12, r1, STACK_R12
  55. SWI r13, r1, STACK_R13
  56. SWI r14, r1, STACK_R14
  57. SWI r15, r1, STACK_R15
  58. SWI r17, r1, STACK_R17
  59. SWI r18, r1, STACK_R18
  60. SWI r19, r1, STACK_R19
  61. SWI r20, r1, STACK_R20
  62. SWI r21, r1, STACK_R21
  63. SWI r22, r1, STACK_R22
  64. SWI r23, r1, STACK_R23
  65. SWI r24, r1, STACK_R24
  66. SWI r25, r1, STACK_R25
  67. SWI r26, r1, STACK_R26
  68. SWI r27, r1, STACK_R27
  69. SWI r28, r1, STACK_R28
  70. SWI r29, r1, STACK_R29
  71. SWI r30, r1, STACK_R30
  72. SWI r31, r1, STACK_R31
  73. .endm
  74. .macro POP_ALL
  75. LWI r31, r1, STACK_R31
  76. LWI r30, r1, STACK_R30
  77. LWI r29, r1, STACK_R29
  78. LWI r28, r1, STACK_R28
  79. LWI r27, r1, STACK_R27
  80. LWI r26, r1, STACK_R26
  81. LWI r25, r1, STACK_R25
  82. LWI r24, r1, STACK_R24
  83. LWI r23, r1, STACK_R23
  84. LWI r22, r1, STACK_R22
  85. LWI r21, r1, STACK_R21
  86. LWI r20, r1, STACK_R20
  87. LWI r19, r1, STACK_R19
  88. LWI r18, r1, STACK_R18
  89. LWI r17, r1, STACK_R17
  90. LWI r15, r1, STACK_R15
  91. LWI r14, r1, STACK_R14
  92. LWI r13, r1, STACK_R13
  93. LWI r12, r1, STACK_R12
  94. LWI r11, r1, STACK_R11
  95. LWI r10, r1, STACK_R10
  96. LWI r9, r1, STACK_R09
  97. LWI r8, r1, STACK_R08
  98. LWI r7, r1, STACK_R07
  99. LWI r6, r1, STACK_R06
  100. LWI r5, r1, STACK_R05
  101. LWI r4, r1, STACK_R04
  102. LWI r3, r1, STACK_R03
  103. LWI r2, r1, STACK_R02
  104. .endm