]> git.proxmox.com Git - mirror_edk2.git/blame - ArmPkg/Include/AsmMacroIoLib.h
UefiCpuPkg: Move AsmRelocateApLoopStart from Mpfuncs.nasm to AmdSev.nasm
[mirror_edk2.git] / ArmPkg / Include / AsmMacroIoLib.h
CommitLineData
2ef2b01e
A
1/** @file\r
2 Macros to work around lack of Apple support for LDR register, =expr\r
3\r
d6ebcab7 4 Copyright (c) 2008 - 2009, Apple Inc. All rights reserved.<BR>\r
1377db63 5 Copyright (c) 2011-2012, ARM Ltd. All rights reserved.<BR>\r
d2d0e27c 6 Copyright (c) 2016, Linaro Ltd. All rights reserved.<BR>\r
2ef2b01e 7\r
4059386c 8 SPDX-License-Identifier: BSD-2-Clause-Patent\r
2ef2b01e
A
9\r
10**/\r
11\r
cc15a619
PG
12#ifndef ASM_MACRO_IO_LIB_H_\r
13#define ASM_MACRO_IO_LIB_H_\r
2ef2b01e 14\r
d2d0e27c
AB
15#define _ASM_FUNC(Name, Section) \\r
16 .global Name ; \\r
17 .section #Section, "ax" ; \\r
18 .type Name, %function ; \\r
493b4045 19 .p2align 2 ; \\r
d2d0e27c
AB
20 Name:\r
21\r
429309e0 22#define ASM_FUNC(Name) _ASM_FUNC(ASM_PFX(Name), .text. ## Name)\r
d2d0e27c
AB
23\r
24#define MOV32(Reg, Val) \\r
25 movw Reg, #(Val) & 0xffff ; \\r
26 movt Reg, #(Val) >> 16\r
27\r
28#define ADRL(Reg, Sym) \\r
29 movw Reg, #:lower16:(Sym) - (. + 16) ; \\r
30 movt Reg, #:upper16:(Sym) - (. + 12) ; \\r
31 add Reg, Reg, pc\r
32\r
33#define LDRL(Reg, Sym) \\r
34 movw Reg, #:lower16:(Sym) - (. + 16) ; \\r
35 movt Reg, #:upper16:(Sym) - (. + 12) ; \\r
36 ldr Reg, [pc, Reg]\r
37\r
cc15a619 38#endif // ASM_MACRO_IO_LIB_H_\r