Merge remote-tracking branch 'h8300/h8300-next'
[deliverable/linux.git] / arch / mips / include / asm / compiler.h
CommitLineData
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 */
This page took 0.765816 seconds and 5 git commands to generate.