1/* SPDX-License-Identifier: GPL-2.0-only */ 2/* 3 * include/asm-arm/unified.h - Unified Assembler Syntax helper macros 4 * 5 * Copyright (C) 2008 ARM Limited 6 */ 7 8#ifndef __ASM_UNIFIED_H 9#define __ASM_UNIFIED_H 10 11#if defined(__ASSEMBLY__) 12 .syntax unified 13#else 14__asm__(".syntax unified"); 15#endif 16 17#ifdef CONFIG_CPU_V7M 18#define AR_CLASS(x...) 19#define M_CLASS(x...) x 20#else 21#define AR_CLASS(x...) x 22#define M_CLASS(x...) 23#endif 24 25#ifdef CONFIG_THUMB2_KERNEL 26 27#if __GNUC__ < 4 28#error Thumb-2 kernel requires gcc >= 4 29#endif 30 31/* The CPSR bit describing the instruction set (Thumb) */ 32#define PSR_ISETSTATE PSR_T_BIT 33 34#define ARM(x...) 35#define THUMB(x...) x 36#ifdef __ASSEMBLY__ 37#define W(instr) instr.w 38#else 39#define WASM(instr) #instr ".w" 40#endif 41 42#else /* !CONFIG_THUMB2_KERNEL */ 43 44/* The CPSR bit describing the instruction set (ARM) */ 45#define PSR_ISETSTATE 0 46 47#define ARM(x...) x 48#define THUMB(x...) 49#ifdef __ASSEMBLY__ 50#define W(instr) instr 51#else 52#define WASM(instr) #instr 53#endif 54 55#endif /* CONFIG_THUMB2_KERNEL */ 56 57#endif /* !__ASM_UNIFIED_H */ 58