Commit | Line | Data |
---|---|---|
1da177e4 | 1 | /* |
09abbcff | 2 | * Copyright (C) 2004, 2007 Maciej W. Rozycki |
1da177e4 LT |
3 | * |
4 | * This file is subject to the terms and conditions of the GNU General Public | |
5 | * License. See the file "COPYING" in the main directory of this archive | |
6 | * for more details. | |
7 | */ | |
8 | #ifndef _ASM_COMPILER_H | |
9 | #define _ASM_COMPILER_H | |
10 | ||
11 | #if __GNUC__ > 3 || (__GNUC__ == 3 && __GNUC_MINOR__ >= 4) | |
ad1d77a3 | 12 | #define GCC_IMM_ASM() "n" |
1da177e4 LT |
13 | #define GCC_REG_ACCUM "$0" |
14 | #else | |
ad1d77a3 | 15 | #define GCC_IMM_ASM() "rn" |
1da177e4 LT |
16 | #define GCC_REG_ACCUM "accum" |
17 | #endif | |
18 | ||
123e4b3b MC |
19 | #ifdef CONFIG_CPU_MIPSR6 |
20 | /* All MIPS R6 toolchains support the ZC constrain */ | |
21 | #define GCC_OFF_SMALL_ASM() "ZC" | |
22 | #else | |
b0984c43 | 23 | #ifndef CONFIG_CPU_MICROMIPS |
94bfb75a | 24 | #define GCC_OFF_SMALL_ASM() "R" |
b0984c43 | 25 | #elif __GNUC__ > 4 || (__GNUC__ == 4 && __GNUC_MINOR__ >= 9) |
94bfb75a | 26 | #define GCC_OFF_SMALL_ASM() "ZC" |
b0984c43 MR |
27 | #else |
28 | #error "microMIPS compilation unsupported with GCC older than 4.9" | |
123e4b3b MC |
29 | #endif /* CONFIG_CPU_MICROMIPS */ |
30 | #endif /* CONFIG_CPU_MIPSR6 */ | |
b0984c43 | 31 | |
be513698 MC |
32 | #ifdef CONFIG_CPU_MIPSR6 |
33 | #define MIPS_ISA_LEVEL "mips64r6" | |
34 | #define MIPS_ISA_ARCH_LEVEL MIPS_ISA_LEVEL | |
35 | #define MIPS_ISA_LEVEL_RAW mips64r6 | |
36 | #define MIPS_ISA_ARCH_LEVEL_RAW MIPS_ISA_LEVEL_RAW | |
37 | #else | |
38 | /* MIPS64 is a superset of MIPS32 */ | |
39 | #define MIPS_ISA_LEVEL "mips64r2" | |
40 | #define MIPS_ISA_ARCH_LEVEL "arch=r4000" | |
41 | #define MIPS_ISA_LEVEL_RAW mips64r2 | |
42 | #define MIPS_ISA_ARCH_LEVEL_RAW MIPS_ISA_LEVEL_RAW | |
43 | #endif /* CONFIG_CPU_MIPSR6 */ | |
44 | ||
1da177e4 | 45 | #endif /* _ASM_COMPILER_H */ |