blob: 34ad65a7801f5e76a33e9d6da21a65a270c75f36 [file] [log] [blame]
Linus Torvalds1da177e2005-04-16 15:20:36 -07001/*
Maciej W. Rozycki09abbcf2007-09-17 17:11:07 +01002 * Copyright (C) 2004, 2007 Maciej W. Rozycki
Linus Torvalds1da177e2005-04-16 15:20:36 -07003 *
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)
Ralf Baechlead1d77a2008-05-01 15:28:53 +010012#define GCC_IMM_ASM() "n"
Linus Torvalds1da177e2005-04-16 15:20:36 -070013#define GCC_REG_ACCUM "$0"
14#else
Ralf Baechlead1d77a2008-05-01 15:28:53 +010015#define GCC_IMM_ASM() "rn"
Linus Torvalds1da177e2005-04-16 15:20:36 -070016#define GCC_REG_ACCUM "accum"
17#endif
18
Maciej W. Rozyckib0984c42014-11-15 22:08:48 +000019#ifndef CONFIG_CPU_MICROMIPS
Markos Chandras94bfb752015-01-26 12:44:11 +000020#define GCC_OFF_SMALL_ASM() "R"
Maciej W. Rozyckib0984c42014-11-15 22:08:48 +000021#elif __GNUC__ > 4 || (__GNUC__ == 4 && __GNUC_MINOR__ >= 9)
Markos Chandras94bfb752015-01-26 12:44:11 +000022#define GCC_OFF_SMALL_ASM() "ZC"
Maciej W. Rozyckib0984c42014-11-15 22:08:48 +000023#else
24#error "microMIPS compilation unsupported with GCC older than 4.9"
25#endif
26
Markos Chandrasbe513692014-11-18 15:02:32 +000027#ifdef CONFIG_CPU_MIPSR6
28#define MIPS_ISA_LEVEL "mips64r6"
29#define MIPS_ISA_ARCH_LEVEL MIPS_ISA_LEVEL
30#define MIPS_ISA_LEVEL_RAW mips64r6
31#define MIPS_ISA_ARCH_LEVEL_RAW MIPS_ISA_LEVEL_RAW
32#else
33/* MIPS64 is a superset of MIPS32 */
34#define MIPS_ISA_LEVEL "mips64r2"
35#define MIPS_ISA_ARCH_LEVEL "arch=r4000"
36#define MIPS_ISA_LEVEL_RAW mips64r2
37#define MIPS_ISA_ARCH_LEVEL_RAW MIPS_ISA_LEVEL_RAW
38#endif /* CONFIG_CPU_MIPSR6 */
39
Linus Torvalds1da177e2005-04-16 15:20:36 -070040#endif /* _ASM_COMPILER_H */