1 /* SPDX-License-Identifier: GPL-2.0-or-later */ 2 /* 3 * include/lib/libgcc.h 4 */ 5 6 #ifndef __LIB_LIBGCC_H 7 #define __LIB_LIBGCC_H 8 9 #include <asm/byteorder.h> 10 11 typedef int word_type __attribute__ ((mode (__word__))); 12 13 #ifdef __BIG_ENDIAN 14 struct DWstruct { 15 int high, low; 16 }; 17 #elif defined(__LITTLE_ENDIAN) 18 struct DWstruct { 19 int low, high; 20 }; 21 #else 22 #error I feel sick. 23 #endif 24 25 typedef union { 26 struct DWstruct s; 27 long long ll; 28 } DWunion; 29 30 long long notrace __ashldi3(long long u, word_type b); 31 long long notrace __ashrdi3(long long u, word_type b); 32 word_type notrace __cmpdi2(long long a, long long b); 33 long long notrace __lshrdi3(long long u, word_type b); 34 long long notrace __muldi3(long long u, long long v); 35 word_type notrace __ucmpdi2(unsigned long long a, unsigned long long b); 36 37 #endif /* __ASM_LIBGCC_H */ 38