blob: 199a7f96282f2860b78b663780635b338f7e236b [file] [log] [blame]
Greg Kroah-Hartmanb2441312017-11-01 15:07:57 +01001/* SPDX-License-Identifier: GPL-2.0 */
Ralf Baechle72fbfb262006-06-07 13:25:37 +01002#ifndef __ASM_LIBGCC_H
3#define __ASM_LIBGCC_H
4
5#include <asm/byteorder.h>
6
7typedef int word_type __attribute__ ((mode (__word__)));
8
9#ifdef __BIG_ENDIAN
10struct DWstruct {
11 int high, low;
12};
James Hoganebabcf12017-12-07 07:20:46 +000013
14struct TWstruct {
15 long long high, low;
16};
Ralf Baechle72fbfb262006-06-07 13:25:37 +010017#elif defined(__LITTLE_ENDIAN)
18struct DWstruct {
19 int low, high;
20};
James Hoganebabcf12017-12-07 07:20:46 +000021
22struct TWstruct {
23 long long low, high;
24};
Ralf Baechle72fbfb262006-06-07 13:25:37 +010025#else
26#error I feel sick.
27#endif
28
Andrea Gelminib44c7792010-02-27 17:51:23 +010029typedef union {
Ralf Baechle72fbfb262006-06-07 13:25:37 +010030 struct DWstruct s;
31 long long ll;
32} DWunion;
33
James Hoganebabcf12017-12-07 07:20:46 +000034#if defined(CONFIG_64BIT) && defined(CONFIG_CPU_MIPSR6)
35typedef int ti_type __attribute__((mode(TI)));
36
37typedef union {
38 struct TWstruct s;
39 ti_type ti;
40} TWunion;
41#endif
42
Ralf Baechle72fbfb262006-06-07 13:25:37 +010043#endif /* __ASM_LIBGCC_H */