Linux Audio

Check our new training course

Loading...
v4.6
  1/*
  2 * include/asm-arm/unified.h - Unified Assembler Syntax helper macros
  3 *
  4 * Copyright (C) 2008 ARM Limited
  5 *
  6 * This program is free software; you can redistribute it and/or modify
  7 * it under the terms of the GNU General Public License version 2 as
  8 * published by the Free Software Foundation.
  9 *
 10 * This program is distributed in the hope that it will be useful,
 11 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 12 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 13 * GNU General Public License for more details.
 14 *
 15 * You should have received a copy of the GNU General Public License
 16 * along with this program; if not, write to the Free Software
 17 * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
 18 */
 19
 20#ifndef __ASM_UNIFIED_H
 21#define __ASM_UNIFIED_H
 22
 23#if defined(__ASSEMBLY__) && defined(CONFIG_ARM_ASM_UNIFIED)
 24	.syntax unified
 
 
 25#endif
 26
 27#ifdef CONFIG_CPU_V7M
 28#define AR_CLASS(x...)
 29#define M_CLASS(x...)	x
 30#else
 31#define AR_CLASS(x...)	x
 32#define M_CLASS(x...)
 33#endif
 34
 35#ifdef CONFIG_THUMB2_KERNEL
 36
 37#if __GNUC__ < 4
 38#error Thumb-2 kernel requires gcc >= 4
 39#endif
 40
 41/* The CPSR bit describing the instruction set (Thumb) */
 42#define PSR_ISETSTATE	PSR_T_BIT
 43
 44#define ARM(x...)
 45#define THUMB(x...)	x
 46#ifdef __ASSEMBLY__
 47#define W(instr)	instr.w
 48#else
 49#define WASM(instr)	#instr ".w"
 50#endif
 51
 52#else	/* !CONFIG_THUMB2_KERNEL */
 53
 54/* The CPSR bit describing the instruction set (ARM) */
 55#define PSR_ISETSTATE	0
 56
 57#define ARM(x...)	x
 58#define THUMB(x...)
 59#ifdef __ASSEMBLY__
 60#define W(instr)	instr
 61#else
 62#define WASM(instr)	#instr
 63#endif
 64
 65#endif	/* CONFIG_THUMB2_KERNEL */
 66
 67#ifndef CONFIG_ARM_ASM_UNIFIED
 68
 69/*
 70 * If the unified assembly syntax isn't used (in ARM mode), these
 71 * macros expand to an empty string
 72 */
 73#ifdef __ASSEMBLY__
 74	.macro	it, cond
 75	.endm
 76	.macro	itt, cond
 77	.endm
 78	.macro	ite, cond
 79	.endm
 80	.macro	ittt, cond
 81	.endm
 82	.macro	itte, cond
 83	.endm
 84	.macro	itet, cond
 85	.endm
 86	.macro	itee, cond
 87	.endm
 88	.macro	itttt, cond
 89	.endm
 90	.macro	ittte, cond
 91	.endm
 92	.macro	ittet, cond
 93	.endm
 94	.macro	ittee, cond
 95	.endm
 96	.macro	itett, cond
 97	.endm
 98	.macro	itete, cond
 99	.endm
100	.macro	iteet, cond
101	.endm
102	.macro	iteee, cond
103	.endm
104#else	/* !__ASSEMBLY__ */
105__asm__(
106"	.macro	it, cond\n"
107"	.endm\n"
108"	.macro	itt, cond\n"
109"	.endm\n"
110"	.macro	ite, cond\n"
111"	.endm\n"
112"	.macro	ittt, cond\n"
113"	.endm\n"
114"	.macro	itte, cond\n"
115"	.endm\n"
116"	.macro	itet, cond\n"
117"	.endm\n"
118"	.macro	itee, cond\n"
119"	.endm\n"
120"	.macro	itttt, cond\n"
121"	.endm\n"
122"	.macro	ittte, cond\n"
123"	.endm\n"
124"	.macro	ittet, cond\n"
125"	.endm\n"
126"	.macro	ittee, cond\n"
127"	.endm\n"
128"	.macro	itett, cond\n"
129"	.endm\n"
130"	.macro	itete, cond\n"
131"	.endm\n"
132"	.macro	iteet, cond\n"
133"	.endm\n"
134"	.macro	iteee, cond\n"
135"	.endm\n");
136#endif	/* __ASSEMBLY__ */
137
138#endif	/* CONFIG_ARM_ASM_UNIFIED */
139
140#endif	/* !__ASM_UNIFIED_H */
v4.17
 1/*
 2 * include/asm-arm/unified.h - Unified Assembler Syntax helper macros
 3 *
 4 * Copyright (C) 2008 ARM Limited
 5 *
 6 * This program is free software; you can redistribute it and/or modify
 7 * it under the terms of the GNU General Public License version 2 as
 8 * published by the Free Software Foundation.
 9 *
10 * This program is distributed in the hope that it will be useful,
11 * but WITHOUT ANY WARRANTY; without even the implied warranty of
12 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
13 * GNU General Public License for more details.
14 *
15 * You should have received a copy of the GNU General Public License
16 * along with this program; if not, write to the Free Software
17 * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
18 */
19
20#ifndef __ASM_UNIFIED_H
21#define __ASM_UNIFIED_H
22
23#if defined(__ASSEMBLY__)
24	.syntax unified
25#else
26__asm__(".syntax unified");
27#endif
28
29#ifdef CONFIG_CPU_V7M
30#define AR_CLASS(x...)
31#define M_CLASS(x...)	x
32#else
33#define AR_CLASS(x...)	x
34#define M_CLASS(x...)
35#endif
36
37#ifdef CONFIG_THUMB2_KERNEL
38
39#if __GNUC__ < 4
40#error Thumb-2 kernel requires gcc >= 4
41#endif
42
43/* The CPSR bit describing the instruction set (Thumb) */
44#define PSR_ISETSTATE	PSR_T_BIT
45
46#define ARM(x...)
47#define THUMB(x...)	x
48#ifdef __ASSEMBLY__
49#define W(instr)	instr.w
50#else
51#define WASM(instr)	#instr ".w"
52#endif
53
54#else	/* !CONFIG_THUMB2_KERNEL */
55
56/* The CPSR bit describing the instruction set (ARM) */
57#define PSR_ISETSTATE	0
58
59#define ARM(x...)	x
60#define THUMB(x...)
61#ifdef __ASSEMBLY__
62#define W(instr)	instr
63#else
64#define WASM(instr)	#instr
65#endif
66
67#endif	/* CONFIG_THUMB2_KERNEL */
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
68
69#endif	/* !__ASM_UNIFIED_H */