mirror of
				https://git.kernel.org/pub/scm/linux/kernel/git/chenhuacai/linux-loongson
				synced 2025-10-31 20:06:46 +00:00 
			
		
		
		
	 74109b8913
			
		
	
	
		74109b8913
		
	
	
	
	
		
			
			Please, fold into 0becb08850
aka "Thumb-2: Add macros for the unified assembler syntax"
otherwise:
	crypto/cast6.c:372:39: error: macro "W" passed 2 arguments, but takes just 1
Signed-off-by: Alexey Dobriyan <adobriyan@gmail.com>
Signed-off-by: Catalin Marinas <catalin.marinas@arm.com>
		
	
			
		
			
				
	
	
		
			131 lines
		
	
	
		
			2.6 KiB
		
	
	
	
		
			C
		
	
	
	
	
	
			
		
		
	
	
			131 lines
		
	
	
		
			2.6 KiB
		
	
	
	
		
			C
		
	
	
	
	
	
| /*
 | |
|  * include/asm-arm/unified.h - Unified Assembler Syntax helper macros
 | |
|  *
 | |
|  * Copyright (C) 2008 ARM Limited
 | |
|  *
 | |
|  * This program is free software; you can redistribute it and/or modify
 | |
|  * it under the terms of the GNU General Public License version 2 as
 | |
|  * published by the Free Software Foundation.
 | |
|  *
 | |
|  * This program is distributed in the hope that it will be useful,
 | |
|  * but WITHOUT ANY WARRANTY; without even the implied warranty of
 | |
|  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 | |
|  * GNU General Public License for more details.
 | |
|  *
 | |
|  * You should have received a copy of the GNU General Public License
 | |
|  * along with this program; if not, write to the Free Software
 | |
|  * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
 | |
|  */
 | |
| 
 | |
| #ifndef __ASM_UNIFIED_H
 | |
| #define __ASM_UNIFIED_H
 | |
| 
 | |
| #if defined(__ASSEMBLY__) && defined(CONFIG_ARM_ASM_UNIFIED)
 | |
| 	.syntax unified
 | |
| #endif
 | |
| 
 | |
| #ifdef CONFIG_THUMB2_KERNEL
 | |
| 
 | |
| #if __GNUC__ < 4
 | |
| #error Thumb-2 kernel requires gcc >= 4
 | |
| #endif
 | |
| 
 | |
| /* The CPSR bit describing the instruction set (Thumb) */
 | |
| #define PSR_ISETSTATE	PSR_T_BIT
 | |
| 
 | |
| #define ARM(x...)
 | |
| #define THUMB(x...)	x
 | |
| #ifdef __ASSEMBLY__
 | |
| #define W(instr)	instr.w
 | |
| #endif
 | |
| #define BSYM(sym)	sym + 1
 | |
| 
 | |
| #else	/* !CONFIG_THUMB2_KERNEL */
 | |
| 
 | |
| /* The CPSR bit describing the instruction set (ARM) */
 | |
| #define PSR_ISETSTATE	0
 | |
| 
 | |
| #define ARM(x...)	x
 | |
| #define THUMB(x...)
 | |
| #ifdef __ASSEMBLY__
 | |
| #define W(instr)	instr
 | |
| #endif
 | |
| #define BSYM(sym)	sym
 | |
| 
 | |
| #endif	/* CONFIG_THUMB2_KERNEL */
 | |
| 
 | |
| #ifndef CONFIG_ARM_ASM_UNIFIED
 | |
| 
 | |
| /*
 | |
|  * If the unified assembly syntax isn't used (in ARM mode), these
 | |
|  * macros expand to an empty string
 | |
|  */
 | |
| #ifdef __ASSEMBLY__
 | |
| 	.macro	it, cond
 | |
| 	.endm
 | |
| 	.macro	itt, cond
 | |
| 	.endm
 | |
| 	.macro	ite, cond
 | |
| 	.endm
 | |
| 	.macro	ittt, cond
 | |
| 	.endm
 | |
| 	.macro	itte, cond
 | |
| 	.endm
 | |
| 	.macro	itet, cond
 | |
| 	.endm
 | |
| 	.macro	itee, cond
 | |
| 	.endm
 | |
| 	.macro	itttt, cond
 | |
| 	.endm
 | |
| 	.macro	ittte, cond
 | |
| 	.endm
 | |
| 	.macro	ittet, cond
 | |
| 	.endm
 | |
| 	.macro	ittee, cond
 | |
| 	.endm
 | |
| 	.macro	itett, cond
 | |
| 	.endm
 | |
| 	.macro	itete, cond
 | |
| 	.endm
 | |
| 	.macro	iteet, cond
 | |
| 	.endm
 | |
| 	.macro	iteee, cond
 | |
| 	.endm
 | |
| #else	/* !__ASSEMBLY__ */
 | |
| __asm__(
 | |
| "	.macro	it, cond\n"
 | |
| "	.endm\n"
 | |
| "	.macro	itt, cond\n"
 | |
| "	.endm\n"
 | |
| "	.macro	ite, cond\n"
 | |
| "	.endm\n"
 | |
| "	.macro	ittt, cond\n"
 | |
| "	.endm\n"
 | |
| "	.macro	itte, cond\n"
 | |
| "	.endm\n"
 | |
| "	.macro	itet, cond\n"
 | |
| "	.endm\n"
 | |
| "	.macro	itee, cond\n"
 | |
| "	.endm\n"
 | |
| "	.macro	itttt, cond\n"
 | |
| "	.endm\n"
 | |
| "	.macro	ittte, cond\n"
 | |
| "	.endm\n"
 | |
| "	.macro	ittet, cond\n"
 | |
| "	.endm\n"
 | |
| "	.macro	ittee, cond\n"
 | |
| "	.endm\n"
 | |
| "	.macro	itett, cond\n"
 | |
| "	.endm\n"
 | |
| "	.macro	itete, cond\n"
 | |
| "	.endm\n"
 | |
| "	.macro	iteet, cond\n"
 | |
| "	.endm\n"
 | |
| "	.macro	iteee, cond\n"
 | |
| "	.endm\n");
 | |
| #endif	/* __ASSEMBLY__ */
 | |
| 
 | |
| #endif	/* CONFIG_ARM_ASM_UNIFIED */
 | |
| 
 | |
| #endif	/* !__ASM_UNIFIED_H */
 |