1 /* SPDX-License-Identifier: GPL-2.0 */ 2 #ifndef __ASM_LIBGCC_H 3 #define __ASM_LIBGCC_H 4 5 #include <asm/byteorder.h> 6 7 typedef int word_type __attribute__ ((mode (__word__))); 8 9 #ifdef __BIG_ENDIAN 10 struct DWstruct { 11 int high, low; 12 }; 13 14 struct TWstruct { 15 long long high, low; 16 }; 17 #elif defined(__LITTLE_ENDIAN) 18 struct DWstruct { 19 int low, high; 20 }; 21 22 struct TWstruct { 23 long long low, high; 24 }; 25 #else 26 #error I feel sick. 27 #endif 28 29 typedef union { 30 struct DWstruct s; 31 long long ll; 32 } DWunion; 33 34 #if defined(CONFIG_64BIT) && defined(CONFIG_CPU_MIPSR6) 35 typedef int ti_type __attribute__((mode(TI))); 36 37 typedef union { 38 struct TWstruct s; 39 ti_type ti; 40 } TWunion; 41 #endif 42 43 #endif /* __ASM_LIBGCC_H */ 44