62#ifndef __USER_LABEL_PREFIX__
63#define __USER_LABEL_PREFIX__ _
66#ifndef __REGISTER_PREFIX__
67#define __REGISTER_PREFIX__
74#define SYM(x) CONCAT1 (__USER_LABEL_PREFIX__, x)
78#define REG(x) CONCAT1 (__REGISTER_PREFIX__, x)
103#define CPSR REG(CPSR)
105#define SPSR REG(SPSR)
107#define NUM_IRQ_VECTOR 6
108#define NUM_FIQ_VECTOR 7
110#define CPSR_IRQ_DISABLE 0x80
111#define CPSR_FIQ_DISABLE 0x40
112#define CPSR_THUMB_ENABLE 0x20
113#define CPSR_FIQ_MODE 0x11
114#define CPSR_IRQ_MODE 0x12
115#define CPSR_SUPERVISOR_MODE 0x13
116#define CPSR_UNDEF_MODE 0x1B
118#define CPSR_MODE_BITS 0x1F
125#define BEGIN_CODE_DCL .text
127#define BEGIN_DATA_DCL .data
129#define BEGIN_CODE .text
142#define PUBLIC(sym) .globl SYM (sym)
143#define EXTERN(sym) .globl SYM (sym)
145#define FUNCTION_THUMB_ENTRY(name) \
150 .type name, %function; \
153#define FUNCTION_ENTRY(name) \
156 .type name, %function; \
159#define FUNCTION_END(name) \
162#if defined(ARM_MULTILIB_ARCH_V7M)
163 #define DEFINE_FUNCTION_ARM(name) \
164 .thumb_func ; .globl name ; name:
165#elif defined(__thumb__)
166 #define DEFINE_FUNCTION_ARM(name) \
167 .thumb_func ; .globl name ; name: ; bx pc ; \
168 .arm ; .globl name ## _arm ; name ## _arm:
170 #define DEFINE_FUNCTION_ARM(name) \
171 .globl name ; name: ; .globl name ## _arm ; name ## _arm:
174.macro SWITCH_FROM_THUMB_TO_ARM
182.macro SWITCH_FROM_ARM_TO_THUMB
REG
190.macro SWITCH_FROM_THUMB_2_TO_ARM
198.macro SWITCH_FROM_ARM_TO_THUMB_2
REG
206.macro BLX_TO_THUMB_1 TARGET
207#if defined(__thumb__) && !defined(__thumb2__)
220.macro GET_SELF_CPU_CONTROL
REG
223 mrc p15, 0,
\REG, c13, c0, 4
#define REG(x)
Definition: asm.h:72
#define pc
pc, used on mips16 */
Definition: regs.h:67