vregs.h 1.2 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879
  1. ; real
  2. ; GAS defines r0..r7 as aliases for real registers; we want the saddr
  3. ; forms here.
  4. r_0 = 0xffef8
  5. r_1 = 0xffef9
  6. r_2 = 0xffefa
  7. r_3 = 0xffefb
  8. r_4 = 0xffefc
  9. r_5 = 0xffefd
  10. r_6 = 0xffefe
  11. r_7 = 0xffeff
  12. #ifdef __RL78_G10__
  13. ; clobberable
  14. r8 = 0xffec8
  15. r9 = 0xffec9
  16. r10 = 0xffeca
  17. r11 = 0xffecb
  18. r12 = 0xffecc
  19. r13 = 0xffecd
  20. r14 = 0xffece
  21. r15 = 0xffecf
  22. ; preserved
  23. r16 = 0xffed0
  24. r17 = 0xffed1
  25. r18 = 0xffed2
  26. r19 = 0xffed3
  27. r20 = 0xffed4
  28. r21 = 0xffed5
  29. r22 = 0xffed6
  30. r23 = 0xffed7
  31. #else
  32. ; clobberable
  33. r8 = 0xffef0
  34. r9 = 0xffef1
  35. r10 = 0xffef2
  36. r11 = 0xffef3
  37. r12 = 0xffef4
  38. r13 = 0xffef5
  39. r14 = 0xffef6
  40. r15 = 0xffef7
  41. ; preserved
  42. r16 = 0xffee8
  43. r17 = 0xffee9
  44. r18 = 0xffeea
  45. r19 = 0xffeeb
  46. r20 = 0xffeec
  47. r21 = 0xffeed
  48. r22 = 0xffeee
  49. r23 = 0xffeef
  50. #endif
  51. .macro START_ANOTHER_FUNC name
  52. .global \name
  53. .type \name , @function
  54. \name:
  55. .endm
  56. /* Start a function in its own section, so that it
  57. can be subject to linker garbage collection. */
  58. .macro START_FUNC name
  59. .pushsection .text.\name,"ax",@progbits
  60. START_ANOTHER_FUNC \name
  61. .endm
  62. .macro END_ANOTHER_FUNC name
  63. .size \name , . - \name
  64. .endm
  65. /* End the function. Set the size. */
  66. .macro END_FUNC name
  67. END_ANOTHER_FUNC \name
  68. .popsection
  69. .endm