14e07dba7SMichal Simek #ifndef __ASM_LIBGCC_H 24e07dba7SMichal Simek #define __ASM_LIBGCC_H 34e07dba7SMichal Simek 44e07dba7SMichal Simek #include <asm/byteorder.h> 54e07dba7SMichal Simek 64e07dba7SMichal Simek typedef int word_type __attribute__ ((mode (__word__))); 74e07dba7SMichal Simek 84e07dba7SMichal Simek #ifdef __BIG_ENDIAN 94e07dba7SMichal Simek struct DWstruct { 104e07dba7SMichal Simek int high, low; 114e07dba7SMichal Simek }; 124e07dba7SMichal Simek #elif defined(__LITTLE_ENDIAN) 134e07dba7SMichal Simek struct DWstruct { 144e07dba7SMichal Simek int low, high; 154e07dba7SMichal Simek }; 164e07dba7SMichal Simek #else 174e07dba7SMichal Simek #error I feel sick. 184e07dba7SMichal Simek #endif 194e07dba7SMichal Simek 204e07dba7SMichal Simek typedef union { 214e07dba7SMichal Simek struct DWstruct s; 224e07dba7SMichal Simek long long ll; 234e07dba7SMichal Simek } DWunion; 244e07dba7SMichal Simek 25*9f2a45bdSMichal Simek extern long long __ashldi3(long long u, word_type b); 26*9f2a45bdSMichal Simek extern long long __ashrdi3(long long u, word_type b); 27*9f2a45bdSMichal Simek extern word_type __cmpdi2(long long a, long long b); 28*9f2a45bdSMichal Simek extern long long __lshrdi3(long long u, word_type b); 29*9f2a45bdSMichal Simek extern long long __muldi3(long long u, long long v); 30*9f2a45bdSMichal Simek extern word_type __ucmpdi2(unsigned long long a, unsigned long long b); 31*9f2a45bdSMichal Simek 324e07dba7SMichal Simek #endif /* __ASM_LIBGCC_H */ 33