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