84#ifndef __USER_LABEL_PREFIX__
85#define __USER_LABEL_PREFIX__ _
88#ifndef __REGISTER_PREFIX__
89#define __REGISTER_PREFIX__
94#define SYM(x) RTEMS_XCONCAT(__USER_LABEL_PREFIX__, x)
98#define REG(x) RTEMS_XCONCAT(__REGISTER_PREFIX__, x)
123#define CPSR REG(CPSR)
125#define SPSR REG(SPSR)
127#define NUM_IRQ_VECTOR 6
128#define NUM_FIQ_VECTOR 7
130#define CPSR_IRQ_DISABLE 0x80
131#define CPSR_FIQ_DISABLE 0x40
132#define CPSR_THUMB_ENABLE 0x20
133#define CPSR_FIQ_MODE 0x11
134#define CPSR_IRQ_MODE 0x12
135#define CPSR_SUPERVISOR_MODE 0x13
136#define CPSR_UNDEF_MODE 0x1B
138#define CPSR_MODE_BITS 0x1F
145#define BEGIN_CODE_DCL .text
147#define BEGIN_DATA_DCL .data
149#define BEGIN_CODE .text
162#define PUBLIC(sym) .globl SYM (sym)
163#define EXTERN(sym) .globl SYM (sym)
165#define FUNCTION_THUMB_ENTRY(name) \
170 .type name, %function; \
173#define FUNCTION_ENTRY(name) \
176 .type name, %function; \
179#define FUNCTION_END(name) \
182#if defined(ARM_MULTILIB_ARCH_V7M)
183 #define DEFINE_FUNCTION_ARM(name) \
184 .thumb_func ; .globl name ; name:
185#elif defined(__thumb__)
186 #define DEFINE_FUNCTION_ARM(name) \
187 .thumb_func ; .globl name ; name: ; bx pc ; \
188 .arm ; .globl name ## _arm ; name ## _arm:
190 #define DEFINE_FUNCTION_ARM(name) \
191 .globl name ; name: ; .globl name ## _arm ; name ## _arm:
194.macro SWITCH_FROM_THUMB_TO_ARM
202.macro SWITCH_FROM_ARM_TO_THUMB REG
210.macro SWITCH_FROM_THUMB_2_TO_ARM
218.macro SWITCH_FROM_ARM_TO_THUMB_2 REG
226.macro BLX_TO_THUMB_1 TARGET
227#if defined(__thumb__) && !defined(__thumb2__)
240.macro GET_SELF_CPU_CONTROL REG
243 mrc p15, 0, \REG, c13, c0, 4
CPU_STRUCTURE_ALIGNMENT Per_CPU_Control_envelope _Per_CPU_Information[]
Set of Per CPU Core Information.
Definition: asm.h:171
#define pc
pc, used on mips16 */
Definition: regs.h:67
This header file provides the interfaces of the Per-CPU Information.