• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
1/*
2 * ===========================================================================
3 *  CPU-version-specific defines
4 * ===========================================================================
5 */
6
7/*
8 * Macro for "LDR PC,xxx", which is not allowed pre-ARMv5.  Essentially a
9 * one-way branch.
10 *
11 * May modify IP.  Does not modify LR.
12 */
13.macro  LDR_PC source
14    ldr     pc, \source
15.endm
16
17/*
18 * Macro for "MOV LR,PC / LDR PC,xxx", which is not allowed pre-ARMv5.
19 * Jump to subroutine.
20 *
21 * May modify IP and LR.
22 */
23.macro  LDR_PC_LR source
24    mov     lr, pc
25    ldr     pc, \source
26.endm
27
28/*
29 * Macro for "LDMFD SP!, {...regs...,PC}".
30 *
31 * May modify IP and LR.
32 */
33.macro  LDMFD_PC regs
34    ldmfd   sp!, {\regs,pc}
35.endm
36
37/*
38 * Macro for data memory barrier; not meaningful pre-ARMv6K.
39 */
40.macro  SMP_DMB
41.endm
42