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