1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
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
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#endif
42
43#else
44
45
46#define PSR_ISETSTATE 0
47
48#define ARM(x...) x
49#define THUMB(x...)
50#ifdef __ASSEMBLY__
51#define W(instr) instr
52#define BSYM(sym) sym
53#endif
54
55#endif
56
57#ifndef CONFIG_ARM_ASM_UNIFIED
58
59
60
61
62
63#ifdef __ASSEMBLY__
64 .macro it, cond
65 .endm
66 .macro itt, cond
67 .endm
68 .macro ite, cond
69 .endm
70 .macro ittt, cond
71 .endm
72 .macro itte, cond
73 .endm
74 .macro itet, cond
75 .endm
76 .macro itee, cond
77 .endm
78 .macro itttt, cond
79 .endm
80 .macro ittte, cond
81 .endm
82 .macro ittet, cond
83 .endm
84 .macro ittee, cond
85 .endm
86 .macro itett, cond
87 .endm
88 .macro itete, cond
89 .endm
90 .macro iteet, cond
91 .endm
92 .macro iteee, cond
93 .endm
94#else
95__asm__(
96" .macro it, cond\n"
97" .endm\n"
98" .macro itt, cond\n"
99" .endm\n"
100" .macro ite, cond\n"
101" .endm\n"
102" .macro ittt, cond\n"
103" .endm\n"
104" .macro itte, cond\n"
105" .endm\n"
106" .macro itet, cond\n"
107" .endm\n"
108" .macro itee, cond\n"
109" .endm\n"
110" .macro itttt, cond\n"
111" .endm\n"
112" .macro ittte, cond\n"
113" .endm\n"
114" .macro ittet, cond\n"
115" .endm\n"
116" .macro ittee, cond\n"
117" .endm\n"
118" .macro itett, cond\n"
119" .endm\n"
120" .macro itete, cond\n"
121" .endm\n"
122" .macro iteet, cond\n"
123" .endm\n"
124" .macro iteee, cond\n"
125" .endm\n");
126#endif
127
128#endif
129
130#endif
131