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 #elif defined(__LITTLE_ENDIAN) 14 struct DWstruct { 15 int low, high; 16 }; 17 #else 18 #error I feel sick. 19 #endif 20 21 typedef union { 22 struct DWstruct s; 23 long long ll; 24 } DWunion; 25 26 extern long long __ashldi3(long long u, word_type b); 27 extern long long __ashrdi3(long long u, word_type b); 28 extern word_type __cmpdi2(long long a, long long b); 29 extern long long __lshrdi3(long long u, word_type b); 30 extern long long __muldi3(long long u, long long v); 31 extern word_type __ucmpdi2(unsigned long long a, unsigned long long b); 32 33 #endif /* __ASM_LIBGCC_H */ 34