~ [ source navigation ] ~ [ diff markup ] ~ [ identifier search ] ~

TOMOYO Linux Cross Reference
Linux/arch/arm/include/asm/unified.h

Version: ~ [ linux-5.4.2 ] ~ [ linux-5.3.15 ] ~ [ linux-5.2.21 ] ~ [ linux-5.1.21 ] ~ [ linux-5.0.21 ] ~ [ linux-4.20.17 ] ~ [ linux-4.19.88 ] ~ [ linux-4.18.20 ] ~ [ linux-4.17.19 ] ~ [ linux-4.16.18 ] ~ [ linux-4.15.18 ] ~ [ linux-4.14.158 ] ~ [ linux-4.13.16 ] ~ [ linux-4.12.14 ] ~ [ linux-4.11.12 ] ~ [ linux-4.10.17 ] ~ [ linux-4.9.206 ] ~ [ linux-4.8.17 ] ~ [ linux-4.7.10 ] ~ [ linux-4.6.7 ] ~ [ linux-4.5.7 ] ~ [ linux-4.4.206 ] ~ [ linux-4.3.6 ] ~ [ linux-4.2.8 ] ~ [ linux-4.1.52 ] ~ [ linux-4.0.9 ] ~ [ linux-3.19.8 ] ~ [ linux-3.18.140 ] ~ [ linux-3.17.8 ] ~ [ linux-3.16.78 ] ~ [ linux-3.15.10 ] ~ [ linux-3.14.79 ] ~ [ linux-3.13.11 ] ~ [ linux-3.12.74 ] ~ [ linux-3.11.10 ] ~ [ linux-3.10.108 ] ~ [ linux-3.9.11 ] ~ [ linux-3.8.13 ] ~ [ linux-3.7.10 ] ~ [ linux-3.6.11 ] ~ [ linux-3.5.7 ] ~ [ linux-3.4.113 ] ~ [ linux-3.3.8 ] ~ [ linux-3.2.102 ] ~ [ linux-3.1.10 ] ~ [ linux-3.0.101 ] ~ [ linux-2.6.32.71 ] ~ [ linux-2.6.0 ] ~ [ linux-2.4.37.11 ] ~ [ unix-v6-master ] ~ [ ccs-tools-1.8.5 ] ~ [ policy-sample ] ~
Architecture: ~ [ i386 ] ~ [ alpha ] ~ [ m68k ] ~ [ mips ] ~ [ ppc ] ~ [ sparc ] ~ [ sparc64 ] ~

  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 */
141 

~ [ source navigation ] ~ [ diff markup ] ~ [ identifier search ] ~

kernel.org | git.kernel.org | LWN.net | Project Home | Wiki (Japanese) | Wiki (English) | SVN repository | Mail admin

Linux® is a registered trademark of Linus Torvalds in the United States and other countries.
TOMOYO® is a registered trademark of NTT DATA CORPORATION.

osdn.jp