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 | |