1 /* SPDX-License-Identifier: GPL-2.0 */ 1 /* SPDX-License-Identifier: GPL-2.0 */ 2 #ifndef __ASM_LIBGCC_H 2 #ifndef __ASM_LIBGCC_H 3 #define __ASM_LIBGCC_H 3 #define __ASM_LIBGCC_H 4 4 5 #include <asm/byteorder.h> 5 #include <asm/byteorder.h> 6 6 7 typedef int word_type __attribute__ ((mode (__ 7 typedef int word_type __attribute__ ((mode (__word__))); 8 8 9 #ifdef __BIG_ENDIAN 9 #ifdef __BIG_ENDIAN 10 struct DWstruct { 10 struct DWstruct { 11 int high, low; 11 int high, low; 12 }; 12 }; >> 13 >> 14 struct TWstruct { >> 15 long long high, low; >> 16 }; 13 #elif defined(__LITTLE_ENDIAN) 17 #elif defined(__LITTLE_ENDIAN) 14 struct DWstruct { 18 struct DWstruct { 15 int low, high; 19 int low, high; 16 }; 20 }; >> 21 >> 22 struct TWstruct { >> 23 long long low, high; >> 24 }; 17 #else 25 #else 18 #error I feel sick. 26 #error I feel sick. 19 #endif 27 #endif 20 28 21 typedef union { 29 typedef union { 22 struct DWstruct s; 30 struct DWstruct s; 23 long long ll; 31 long long ll; 24 } DWunion; 32 } DWunion; 25 33 26 extern long long __ashldi3(long long u, word_t !! 34 #if defined(CONFIG_64BIT) && defined(CONFIG_CPU_MIPSR6) 27 extern long long __ashrdi3(long long u, word_t !! 35 typedef int ti_type __attribute__((mode(TI))); 28 extern word_type __cmpdi2(long long a, long lo !! 36 29 extern long long __lshrdi3(long long u, word_t !! 37 typedef union { 30 extern long long __muldi3(long long u, long lo !! 38 struct TWstruct s; 31 extern word_type __ucmpdi2(unsigned long long !! 39 ti_type ti; >> 40 } TWunion; >> 41 #endif 32 42 33 #endif /* __ASM_LIBGCC_H */ 43 #endif /* __ASM_LIBGCC_H */ 34 44
Linux® is a registered trademark of Linus Torvalds in the United States and other countries.
TOMOYO® is a registered trademark of NTT DATA CORPORATION.