Linux Audio

Check our new training course

Loading...
v3.15
  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_THUMB2_KERNEL
 28
 29#if __GNUC__ < 4
 30#error Thumb-2 kernel requires gcc >= 4
 31#endif
 32
 33/* The CPSR bit describing the instruction set (Thumb) */
 34#define PSR_ISETSTATE	PSR_T_BIT
 35
 36#define ARM(x...)
 37#define THUMB(x...)	x
 38#ifdef __ASSEMBLY__
 39#define W(instr)	instr.w
 40#define BSYM(sym)	sym + 1
 41#else
 42#define WASM(instr)	#instr ".w"
 43#endif
 44
 45#else	/* !CONFIG_THUMB2_KERNEL */
 46
 47/* The CPSR bit describing the instruction set (ARM) */
 48#define PSR_ISETSTATE	0
 49
 50#define ARM(x...)	x
 51#define THUMB(x...)
 52#ifdef __ASSEMBLY__
 53#define W(instr)	instr
 54#define BSYM(sym)	sym
 55#else
 56#define WASM(instr)	#instr
 57#endif
 58
 59#endif	/* CONFIG_THUMB2_KERNEL */
 60
 61#ifndef CONFIG_ARM_ASM_UNIFIED
 62
 63/*
 64 * If the unified assembly syntax isn't used (in ARM mode), these
 65 * macros expand to an empty string
 66 */
 67#ifdef __ASSEMBLY__
 68	.macro	it, cond
 69	.endm
 70	.macro	itt, cond
 71	.endm
 72	.macro	ite, cond
 73	.endm
 74	.macro	ittt, cond
 75	.endm
 76	.macro	itte, cond
 77	.endm
 78	.macro	itet, cond
 79	.endm
 80	.macro	itee, cond
 81	.endm
 82	.macro	itttt, cond
 83	.endm
 84	.macro	ittte, cond
 85	.endm
 86	.macro	ittet, cond
 87	.endm
 88	.macro	ittee, cond
 89	.endm
 90	.macro	itett, cond
 91	.endm
 92	.macro	itete, cond
 93	.endm
 94	.macro	iteet, cond
 95	.endm
 96	.macro	iteee, cond
 97	.endm
 98#else	/* !__ASSEMBLY__ */
 99__asm__(
100"	.macro	it, cond\n"
101"	.endm\n"
102"	.macro	itt, cond\n"
103"	.endm\n"
104"	.macro	ite, cond\n"
105"	.endm\n"
106"	.macro	ittt, cond\n"
107"	.endm\n"
108"	.macro	itte, cond\n"
109"	.endm\n"
110"	.macro	itet, cond\n"
111"	.endm\n"
112"	.macro	itee, cond\n"
113"	.endm\n"
114"	.macro	itttt, cond\n"
115"	.endm\n"
116"	.macro	ittte, cond\n"
117"	.endm\n"
118"	.macro	ittet, cond\n"
119"	.endm\n"
120"	.macro	ittee, cond\n"
121"	.endm\n"
122"	.macro	itett, cond\n"
123"	.endm\n"
124"	.macro	itete, cond\n"
125"	.endm\n"
126"	.macro	iteet, cond\n"
127"	.endm\n"
128"	.macro	iteee, cond\n"
129"	.endm\n");
130#endif	/* __ASSEMBLY__ */
131
132#endif	/* CONFIG_ARM_ASM_UNIFIED */
133
134#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 */