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