libgcc.h 1.3 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879
  1. /* SPDX-License-Identifier: GPL-2.0 */
  2. #ifndef __H8300_LIBGCC_H__
  3. #define __H8300_LIBGCC_H__
  4. #ifdef __ASSEMBLY__
  5. #define A0 r0
  6. #define A0L r0l
  7. #define A0H r0h
  8. #define A1 r1
  9. #define A1L r1l
  10. #define A1H r1h
  11. #define A2 r2
  12. #define A2L r2l
  13. #define A2H r2h
  14. #define A3 r3
  15. #define A3L r3l
  16. #define A3H r3h
  17. #define S0 r4
  18. #define S0L r4l
  19. #define S0H r4h
  20. #define S1 r5
  21. #define S1L r5l
  22. #define S1H r5h
  23. #define S2 r6
  24. #define S2L r6l
  25. #define S2H r6h
  26. #define PUSHP push.l
  27. #define POPP pop.l
  28. #define A0P er0
  29. #define A1P er1
  30. #define A2P er2
  31. #define A3P er3
  32. #define S0P er4
  33. #define S1P er5
  34. #define S2P er6
  35. #define A0E e0
  36. #define A1E e1
  37. #define A2E e2
  38. #define A3E e3
  39. #else
  40. #define Wtype SItype
  41. #define UWtype USItype
  42. #define HWtype SItype
  43. #define UHWtype USItype
  44. #define DWtype DItype
  45. #define UDWtype UDItype
  46. #define UWtype USItype
  47. #define Wtype SItype
  48. #define UWtype USItype
  49. #define W_TYPE_SIZE (4 * BITS_PER_UNIT)
  50. #define BITS_PER_UNIT (8)
  51. typedef int SItype __attribute__ ((mode (SI)));
  52. typedef unsigned int USItype __attribute__ ((mode (SI)));
  53. typedef int DItype __attribute__ ((mode (DI)));
  54. typedef unsigned int UDItype __attribute__ ((mode (DI)));
  55. struct DWstruct {
  56. Wtype high, low;
  57. };
  58. typedef union {
  59. struct DWstruct s;
  60. DWtype ll;
  61. } DWunion;
  62. typedef int word_type __attribute__ ((mode (__word__)));
  63. #endif
  64. #endif