]> xenbits.xensource.com Git - people/aperard/ovmf.git/commitdiff
MdePkg: Move AsmMacroIoLib*.h from ArmPkg
authorOliver Smith-Denny <osde@linux.microsoft.com>
Tue, 6 Aug 2024 22:19:23 +0000 (15:19 -0700)
committermergify[bot] <37929162+mergify[bot]@users.noreply.github.com>
Thu, 12 Sep 2024 19:36:59 +0000 (19:36 +0000)
AsmMacroIoLib.h and AsmMacroIoLibV8.h are used by the
CompilerIntrinsicsLib, which is moving to MdePkg. These
functions provide standard definitions for ARM/AARCH64
assembly code, respectively, and so are moved to the arch
directories in MdePkg to avoid MdePkg having a
dependency on ArmPkg.

Now that the files are in Arm/ and AArch64/ directories,
the filenames are changed to AsmMacroLib.h as we can
distinguish the architecture from the path.

AsmMacroIoLib.inc is unused and so is removed.

Continuous-integration-options: PatchCheck.ignore-multi-package

Signed-off-by: Oliver Smith-Denny <osde@linux.microsoft.com>
70 files changed:
ArmPkg/Drivers/ArmGic/GicV3/AArch64/ArmGicV3.S
ArmPkg/Drivers/ArmGic/GicV3/Arm/ArmGicV3.S
ArmPkg/Drivers/ArmPsciMpServicesDxe/MpFuncs.S
ArmPkg/Include/AsmMacroIoLib.h [deleted file]
ArmPkg/Include/AsmMacroIoLib.inc [deleted file]
ArmPkg/Include/AsmMacroIoLibV8.h [deleted file]
ArmPkg/Library/ArmExceptionLib/AArch64/ExceptionSupport.S
ArmPkg/Library/ArmHvcLib/AArch64/ArmHvc.S
ArmPkg/Library/ArmHvcLib/Arm/ArmHvc.S
ArmPkg/Library/ArmLib/AArch64/AArch64ArchTimerSupport.S
ArmPkg/Library/ArmLib/AArch64/AArch64Support.S
ArmPkg/Library/ArmLib/AArch64/ArmLibSupport.S
ArmPkg/Library/ArmLib/AArch64/ArmLibSupportV8.S
ArmPkg/Library/ArmLib/Arm/ArmLibSupport.S
ArmPkg/Library/ArmLib/Arm/ArmLibSupportV7.S
ArmPkg/Library/ArmLib/Arm/ArmV7ArchTimerSupport.S
ArmPkg/Library/ArmLib/Arm/ArmV7Support.S
ArmPkg/Library/ArmMmuLib/AArch64/ArmMmuLibReplaceEntry.S
ArmPkg/Library/ArmMmuLib/Arm/ArmMmuLibV7Support.S
ArmPkg/Library/ArmMonitorLib/AArch64/ArmMonitorLib.S
ArmPkg/Library/ArmMonitorLib/Arm/ArmMonitorLib.S
ArmPkg/Library/ArmSmcLib/AArch64/ArmSmc.S
ArmPkg/Library/ArmSmcLib/Arm/ArmSmc.S
ArmPkg/Library/ArmSvcLib/AArch64/ArmSvc.S
ArmPkg/Library/CompilerIntrinsicsLib/AArch64/ashlti3.S
ArmPkg/Library/CompilerIntrinsicsLib/Arm/ashldi3.S
ArmPkg/Library/CompilerIntrinsicsLib/Arm/ashrdi3.S
ArmPkg/Library/CompilerIntrinsicsLib/Arm/clzsi2.S
ArmPkg/Library/CompilerIntrinsicsLib/Arm/ctzsi2.S
ArmPkg/Library/CompilerIntrinsicsLib/Arm/divdi3.S
ArmPkg/Library/CompilerIntrinsicsLib/Arm/divsi3.S
ArmPkg/Library/CompilerIntrinsicsLib/Arm/lasr.S
ArmPkg/Library/CompilerIntrinsicsLib/Arm/ldivmod.S
ArmPkg/Library/CompilerIntrinsicsLib/Arm/llsl.S
ArmPkg/Library/CompilerIntrinsicsLib/Arm/llsr.S
ArmPkg/Library/CompilerIntrinsicsLib/Arm/lshrdi3.S
ArmPkg/Library/CompilerIntrinsicsLib/Arm/memmove.S
ArmPkg/Library/CompilerIntrinsicsLib/Arm/moddi3.S
ArmPkg/Library/CompilerIntrinsicsLib/Arm/modsi3.S
ArmPkg/Library/CompilerIntrinsicsLib/Arm/muldi3.S
ArmPkg/Library/CompilerIntrinsicsLib/Arm/switch16.S
ArmPkg/Library/CompilerIntrinsicsLib/Arm/switch32.S
ArmPkg/Library/CompilerIntrinsicsLib/Arm/switch8.S
ArmPkg/Library/CompilerIntrinsicsLib/Arm/switchu8.S
ArmPkg/Library/CompilerIntrinsicsLib/Arm/ucmpdi2.S
ArmPkg/Library/CompilerIntrinsicsLib/Arm/udivdi3.S
ArmPkg/Library/CompilerIntrinsicsLib/Arm/udivmoddi4.S
ArmPkg/Library/CompilerIntrinsicsLib/Arm/udivsi3.S
ArmPkg/Library/CompilerIntrinsicsLib/Arm/umoddi3.S
ArmPkg/Library/CompilerIntrinsicsLib/Arm/umodsi3.S
ArmPkg/Library/CompilerIntrinsicsLib/Arm/uread.S
ArmPkg/Library/CompilerIntrinsicsLib/Arm/uwrite.S
ArmPkg/Library/SemihostLib/AArch64/GccSemihost.S
ArmPkg/Library/SemihostLib/Arm/GccSemihost.S
ArmPlatformPkg/Library/ArmPlatformLibNull/AArch64/ArmPlatformHelper.S
ArmPlatformPkg/Library/ArmPlatformLibNull/Arm/ArmPlatformHelper.S
ArmPlatformPkg/PeilessSec/AArch64/ModuleEntryPoint.S
ArmPlatformPkg/PeilessSec/Arm/ModuleEntryPoint.S
ArmPlatformPkg/Sec/AArch64/Exception.S
ArmPlatformPkg/Sec/AArch64/Helper.S
ArmPlatformPkg/Sec/AArch64/ModuleEntryPoint.S
ArmPlatformPkg/Sec/AArch64/SwitchStack.S
ArmPlatformPkg/Sec/Arm/Exception.S
ArmPlatformPkg/Sec/Arm/ModuleEntryPoint.S
ArmPlatformPkg/Sec/Arm/SwitchStack.S
ArmVirtPkg/Library/ArmPlatformLibQemu/AArch64/ArmPlatformHelper.S
ArmVirtPkg/PrePi/AArch64/ModuleEntryPoint.S
ArmVirtPkg/PrePi/Arm/ModuleEntryPoint.S
MdePkg/Include/AArch64/AsmMacroLib.h [new file with mode: 0644]
MdePkg/Include/Arm/AsmMacroLib.h [new file with mode: 0644]

index 7316502d23513c42f1ad2567e3fa6c8314b357ea..504f026a1d00b5042271da3f9fe6901d90f5da67 100644 (file)
@@ -5,7 +5,7 @@
 #\r
 #\r
 \r
-#include <AsmMacroIoLibV8.h>\r
+#include <AsmMacroLib.h>\r
 \r
 #if !defined(__clang__)\r
 \r
index 8c43a613dc577ea8c4c613b878c2641a6a6b1f19..33c0a5846414f26886194ed12198f647843e2512 100644 (file)
@@ -5,7 +5,7 @@
 #\r
 #\r
 \r
-#include <AsmMacroIoLib.h>\r
+#include <AsmMacroLib.h>\r
 #include <Library/ArmLib.h>\r
 \r
 // For the moment we assume this will run in SVC mode on ARMv7\r
index f73edc1792d02e8cfa7aee453dacd12b45c4bfe4..7a52a406e7bbfa341ae5bc0857a7418d112ba420 100644 (file)
@@ -7,7 +7,7 @@
 .text\r
 .align 3\r
 \r
-#include <AsmMacroIoLibV8.h>\r
+#include <AsmMacroLib.h>\r
 #include <IndustryStandard/ArmStdSmc.h>\r
 #include <Library/ArmLib.h>\r
 \r
diff --git a/ArmPkg/Include/AsmMacroIoLib.h b/ArmPkg/Include/AsmMacroIoLib.h
deleted file mode 100644 (file)
index 2493a15..0000000
+++ /dev/null
@@ -1,38 +0,0 @@
-/** @file\r
-  Macros to work around lack of Apple support for LDR register, =expr\r
-\r
-  Copyright (c) 2008 - 2009, Apple Inc. All rights reserved.<BR>\r
-  Copyright (c) 2011-2012, ARM Ltd. All rights reserved.<BR>\r
-  Copyright (c) 2016, Linaro Ltd. All rights reserved.<BR>\r
-\r
-  SPDX-License-Identifier: BSD-2-Clause-Patent\r
-\r
-**/\r
-\r
-#ifndef ASM_MACRO_IO_LIB_H_\r
-#define ASM_MACRO_IO_LIB_H_\r
-\r
-#define _ASM_FUNC(Name, Section)    \\r
-  .global   Name                  ; \\r
-  .section  #Section, "ax"        ; \\r
-  .type     Name, %function       ; \\r
-  .p2align  2                     ; \\r
-  Name:\r
-\r
-#define ASM_FUNC(Name)  _ASM_FUNC(ASM_PFX(Name), .text. ## Name)\r
-\r
-#define MOV32(Reg, Val)                       \\r
-  movw      Reg, #(Val) & 0xffff            ; \\r
-  movt      Reg, #(Val) >> 16\r
-\r
-#define ADRL(Reg, Sym)                        \\r
-  movw      Reg, #:lower16:(Sym) - (. + 16) ; \\r
-  movt      Reg, #:upper16:(Sym) - (. + 12) ; \\r
-  add       Reg, Reg, pc\r
-\r
-#define LDRL(Reg, Sym)                        \\r
-  movw      Reg, #:lower16:(Sym) - (. + 16) ; \\r
-  movt      Reg, #:upper16:(Sym) - (. + 12) ; \\r
-  ldr       Reg, [pc, Reg]\r
-\r
-#endif // ASM_MACRO_IO_LIB_H_\r
diff --git a/ArmPkg/Include/AsmMacroIoLib.inc b/ArmPkg/Include/AsmMacroIoLib.inc
deleted file mode 100644 (file)
index 66b8d3d..0000000
+++ /dev/null
@@ -1,33 +0,0 @@
-;%HEADER%\r
-;/** @file\r
-;  Macros to work around lack of Apple support for LDR register, =expr\r
-;\r
-;  Copyright (c) 2009, Apple Inc. All rights reserved.<BR>\r
-;  Copyright (c) 2011-2012, ARM Ltd. All rights reserved.<BR>\r
-;\r
-;  SPDX-License-Identifier: BSD-2-Clause-Patent\r
-;\r
-;**/\r
-\r
-\r
-  MACRO\r
-  adrll   $Reg, $Symbol\r
-  add     $Reg, pc, #-8\r
-  RELOC   R_ARM_ALU_PC_G0_NC, $Symbol\r
-  add     $Reg, $Reg, #-4\r
-  RELOC   R_ARM_ALU_PC_G1_NC, $Symbol\r
-  add     $Reg, $Reg, #0\r
-  RELOC   R_ARM_ALU_PC_G2, $Symbol\r
-  MEND\r
-\r
-  MACRO\r
-  ldrl    $Reg, $Symbol\r
-  add     $Reg, pc, #-8\r
-  RELOC   R_ARM_ALU_PC_G0_NC, $Symbol\r
-  add     $Reg, $Reg, #-4\r
-  RELOC   R_ARM_ALU_PC_G1_NC, $Symbol\r
-  ldr     $Reg, [$Reg, #0]\r
-  RELOC   R_ARM_LDR_PC_G2, $Symbol\r
-  MEND\r
-\r
-  END\r
diff --git a/ArmPkg/Include/AsmMacroIoLibV8.h b/ArmPkg/Include/AsmMacroIoLibV8.h
deleted file mode 100644 (file)
index a5c8635..0000000
+++ /dev/null
@@ -1,56 +0,0 @@
-/** @file\r
-  Macros to work around lack of Clang support for LDR register, =expr\r
-\r
-  Copyright (c) 2008 - 2009, Apple Inc. All rights reserved.<BR>\r
-  Portions copyright (c) 2011 - 2014, ARM Ltd. All rights reserved.<BR>\r
-  Copyright (c) 2016, Linaro Ltd. All rights reserved.<BR>\r
-\r
-  SPDX-License-Identifier: BSD-2-Clause-Patent\r
-\r
-**/\r
-\r
-#ifndef ASM_MACRO_IO_LIBV8_H_\r
-#define ASM_MACRO_IO_LIBV8_H_\r
-\r
-// CurrentEL : 0xC = EL3; 8 = EL2; 4 = EL1\r
-// This only selects between EL1 and EL2, else we die.\r
-// Provide the Macro with a safe temp xreg to use.\r
-#define EL1_OR_EL2(SAFE_XREG)        \\r
-        mrs    SAFE_XREG, CurrentEL ;\\r
-        cmp    SAFE_XREG, #0x8      ;\\r
-        b.gt   .                    ;\\r
-        b.eq   2f                   ;\\r
-        cbnz   SAFE_XREG, 1f        ;\\r
-        b      .                    ;// We should never get here\r
-\r
-#define _ASM_FUNC(Name, Section)    \\r
-  .global   Name                  ; \\r
-  .section  #Section, "ax"        ; \\r
-  .type     Name, %function       ; \\r
-  Name:                           ; \\r
-  AARCH64_BTI(c)\r
-\r
-#define _ASM_FUNC_ALIGN(Name, Section, Align)       \\r
-  .global   Name                                  ; \\r
-  .section  #Section, "ax"                        ; \\r
-  .type     Name, %function                       ; \\r
-  .balign   Align                                 ; \\r
-  Name:                                           ; \\r
-  AARCH64_BTI(c)\r
-\r
-#define ASM_FUNC(Name)  _ASM_FUNC(ASM_PFX(Name), .text. ## Name)\r
-\r
-#define ASM_FUNC_ALIGN(Name, Align)  \\r
-  _ASM_FUNC_ALIGN(ASM_PFX(Name), .text. ## Name, Align)\r
-\r
-#define MOV32(Reg, Val)                   \\r
-  movz      Reg, (Val) >> 16, lsl #16   ; \\r
-  movk      Reg, (Val) & 0xffff\r
-\r
-#define MOV64(Reg, Val)                             \\r
-  movz      Reg, (Val) >> 48, lsl #48             ; \\r
-  movk      Reg, ((Val) >> 32) & 0xffff, lsl #32  ; \\r
-  movk      Reg, ((Val) >> 16) & 0xffff, lsl #16  ; \\r
-  movk      Reg, (Val) & 0xffff\r
-\r
-#endif // ASM_MACRO_IO_LIBV8_H_\r
index de9d3316de9259a92640799a86cbfbff91e0873b..5dc6899773ef146e925c129f124f60485066705a 100644 (file)
@@ -9,7 +9,7 @@
 \r
 #include <AArch64/AArch64.h>\r
 #include <Library/PcdLib.h>\r
-#include <AsmMacroIoLibV8.h>\r
+#include <AsmMacroLib.h>\r
 #include <Protocol/DebugSupport.h> // for exception type definitions\r
 \r
 /*\r
index 39d956a02261aa66e3c810b78e100719b7bebe21..57c2d75885541131db8c0dbe537f900841c21597 100644 (file)
@@ -6,7 +6,7 @@
 //\r
 //\r
 \r
-#include <AsmMacroIoLibV8.h>\r
+#include <AsmMacroLib.h>\r
 \r
 ASM_FUNC(ArmCallHvc)\r
   // Push x0 on the stack - The stack must always be quad-word aligned\r
index 0a5a959196bcfc9bc31cb357e662856b60cec68e..9676529c1763f66f355c40dc82c8679f22c7a134 100644 (file)
@@ -6,7 +6,7 @@
 //\r
 //\r
 \r
-#include <AsmMacroIoLib.h>\r
+#include <AsmMacroLib.h>\r
 \r
 .arch_extension virt\r
 \r
index 574e0d593320d03079edfa0759966295879cfc07..be6f073c4894ebe79f883de72f88f7a2f125b020 100644 (file)
@@ -7,7 +7,7 @@
 #\r
 #------------------------------------------------------------------------------\r
 \r
-#include <AsmMacroIoLibV8.h>\r
+#include <AsmMacroLib.h>\r
 \r
 ASM_FUNC(ArmReadCntFrq)\r
   mrs   x0, cntfrq_el0           // Read CNTFRQ\r
index 1ec868ee124329f1d74abf6b058d1153512a9099..19c77d31b5e0a72aec5a454130befcef0203ab8a 100644 (file)
@@ -10,7 +10,7 @@
 #------------------------------------------------------------------------------\r
 \r
 #include <AArch64/AArch64.h>\r
-#include <AsmMacroIoLibV8.h>\r
+#include <AsmMacroLib.h>\r
 \r
 .set CTRL_M_BIT,      (1 << 0)\r
 .set CTRL_A_BIT,      (1 << 1)\r
index ec34200d4dba21219099c3377f2bb2c34b15febf..d35730704d426bacce1271d13f6288d9ef9c6e03 100644 (file)
@@ -8,7 +8,7 @@
 #\r
 #------------------------------------------------------------------------------\r
 \r
-#include <AsmMacroIoLibV8.h>\r
+#include <AsmMacroLib.h>\r
 \r
 .set DAIF_RD_FIQ_BIT,   (1 << 6)\r
 .set DAIF_RD_IRQ_BIT,   (1 << 7)\r
index 0ae75e4cb9f9306769a3ede9be3f7ce46574bbd7..1459805664217bcfa92fab9358a4906a46380dbf 100644 (file)
@@ -8,7 +8,7 @@
 #\r
 #------------------------------------------------------------------------------\r
 \r
-#include <AsmMacroIoLibV8.h>\r
+#include <AsmMacroLib.h>\r
 \r
 .set MPIDR_U_BIT,    (30)\r
 .set MPIDR_U_MASK,   (1 << MPIDR_U_BIT)\r
index 7e032dd07c13ca2334a9845e7816679603b8aacc..86635cc093ee634118162b26cfffa006a1009eac 100644 (file)
@@ -8,7 +8,7 @@
 #\r
 #------------------------------------------------------------------------------\r
 \r
-#include <AsmMacroIoLib.h>\r
+#include <AsmMacroLib.h>\r
 \r
 ASM_FUNC(ArmReadMidr)\r
   mrc     p15,0,R0,c0,c0,0\r
index d843f91dfca880439d6e4805c5f6e0c089272276..d207876a219853dee7aeefeb1fd88efee9ff48ef 100644 (file)
@@ -8,7 +8,7 @@
 #\r
 #------------------------------------------------------------------------------\r
 \r
-#include <AsmMacroIoLib.h>\r
+#include <AsmMacroLib.h>\r
 \r
 ASM_FUNC(ArmIsMpCore)\r
   mrc     p15,0,R0,c0,c0,5\r
index 7abaa79639ffb2ddab1cb158bb1ca0bbe62d3d16..2ad9b480d19540a532020a2b36c6acb07ec2b272 100644 (file)
@@ -7,7 +7,7 @@
 #\r
 #------------------------------------------------------------------------------\r
 \r
-#include <AsmMacroIoLib.h>\r
+#include <AsmMacroLib.h>\r
 \r
 ASM_FUNC(ArmReadCntFrq)\r
   mrc    p15, 0, r0, c14, c0, 0    @ Read CNTFRQ\r
index 1f396adffc115dd9df9dae9f8e01f39bb6cf7bd1..70b27da70c6523ea4cdf629567aaf9c549ffda95 100644 (file)
@@ -8,7 +8,7 @@
 #\r
 #------------------------------------------------------------------------------\r
 \r
-#include <AsmMacroIoLib.h>\r
+#include <AsmMacroLib.h>\r
 \r
 .set DC_ON, (0x1<<2)\r
 .set IC_ON, (0x1<<12)\r
index 0332cf7ce15c9dcb2f5c7004c1a4f8fca25c0901..97204141541c67053f67105cd724e0e8480756dc 100644 (file)
@@ -6,7 +6,7 @@
 #\r
 #------------------------------------------------------------------------------\r
 \r
-#include <AsmMacroIoLibV8.h>\r
+#include <AsmMacroLib.h>\r
 \r
   .set CTRL_M_BIT,      (1 << 0)\r
 \r
index a97e3fabb22d46400a80fcf52cd3ef73b3ec5865..05f553aba6ff98b78c53f5405bda809306a6269b 100644 (file)
@@ -6,7 +6,7 @@
 #\r
 #------------------------------------------------------------------------------\r
 \r
-#include <AsmMacroIoLib.h>\r
+#include <AsmMacroLib.h>\r
 \r
 .text\r
 .align 2\r
index a99adf00ade0849d8b1e3d1fce9cc9d83498bcc0..6ca1be5ba8d8a6920ed8ca51de2b67708607070d 100644 (file)
@@ -5,7 +5,7 @@
 //\r
 //\r
 \r
-#include <AsmMacroIoLibV8.h>\r
+#include <AsmMacroLib.h>\r
 \r
 /** Monitor call.\r
 \r
index 9029059cf4a4617e361912ff5da8e0748645a681..f3605cb8d93c9b146cecffd367dd24edf6eb5c98 100644 (file)
@@ -5,7 +5,7 @@
 //\r
 //\r
 \r
-#include <AsmMacroIoLib.h>\r
+#include <AsmMacroLib.h>\r
 \r
 /** Monitor call.\r
 \r
index 4a8c2a8f59eab3e5b66dda2515d5bbced131af13..a4443a41fe6c21a47c76dccefeae2a0d838d7b83 100644 (file)
@@ -5,7 +5,7 @@
 //\r
 //\r
 \r
-#include <AsmMacroIoLibV8.h>\r
+#include <AsmMacroLib.h>\r
 \r
 ASM_FUNC(ArmCallSmc)\r
   // Push x0 on the stack - The stack must always be quad-word aligned\r
index d218e7e709521946249bcb31c9a3be7cb32a4545..4b3d0db69715add7b19ed8bdbe54166d1fdd5148 100644 (file)
@@ -5,7 +5,7 @@
 //\r
 //\r
 \r
-#include <AsmMacroIoLib.h>\r
+#include <AsmMacroLib.h>\r
 \r
 .arch_extension sec\r
 \r
index bdba9d7fe941b8c43ad9abd4d2386b17856684b9..6bcb10e88ad7561eaf6e57ce684431b0dde5e957 100644 (file)
@@ -5,7 +5,7 @@
 //\r
 //\r
 \r
-#include <AsmMacroIoLibV8.h>\r
+#include <AsmMacroLib.h>\r
 \r
 .text\r
 .align 3\r
index c2e20069b4e23527f8525aacd96cb57c84cd39e7..77348a0cff7a465240c1ce59cbbc7acdc3d54986 100644 (file)
@@ -6,7 +6,7 @@
 #\r
 #------------------------------------------------------------------------------\r
 \r
-#include <AsmMacroIoLibV8.h>\r
+#include <AsmMacroLib.h>\r
 \r
 ASM_FUNC(__ashlti3)\r
   # return if shift is 0\r
index dee659b6632085293ee21dc1231a00259b2ca71b..f5f14509c5e9f188fb1252a98b3eb1d086d0a1df 100644 (file)
@@ -6,7 +6,7 @@
 #\r
 #------------------------------------------------------------------------------\r
 \r
-#include <AsmMacroIoLib.h>\r
+#include <AsmMacroLib.h>\r
 \r
 ASM_FUNC(__ashldi3)\r
   cmp  r2, #31\r
index d60c1c64fe362f32f4c112414d2d3ef6034f668f..855497e7d1e49ad56ab5ef37915ae71743deb3b6 100644 (file)
@@ -6,7 +6,7 @@
 #\r
 #------------------------------------------------------------------------------\r
 \r
-#include <AsmMacroIoLib.h>\r
+#include <AsmMacroLib.h>\r
 \r
 ASM_FUNC(__ashrdi3)\r
   cmp  r2, #31\r
index 493392a9f9e24972a5117e45047e284506cb9dae..54a7f3cd835016f4cdbc7dda5563fa7e513703de 100644 (file)
@@ -6,7 +6,7 @@
 #\r
 #------------------------------------------------------------------------------\r
 \r
-#include <AsmMacroIoLib.h>\r
+#include <AsmMacroLib.h>\r
 \r
 ASM_FUNC(__clzsi2)\r
   @ frame_needed = 1, uses_anonymous_args = 0\r
index 5b21ec749e4ccb1b067e8c3ba407edf82c433595..d1ff500d5dc56bef1cfcc13e02b13b724b94ce5d 100644 (file)
@@ -6,7 +6,7 @@
 #\r
 #------------------------------------------------------------------------------\r
 \r
-#include <AsmMacroIoLib.h>\r
+#include <AsmMacroLib.h>\r
 \r
 ASM_FUNC(__ctzsi2)\r
   uxth  r3, r0\r
index f809a7dfeff9ff33497e5d12875c17518cf9876e..c1c3c77b25dc6abec5eb44b5499ac0e83060ee5f 100644 (file)
@@ -6,7 +6,7 @@
 #\r
 #------------------------------------------------------------------------------\r
 \r
-#include <AsmMacroIoLib.h>\r
+#include <AsmMacroLib.h>\r
 \r
 ASM_FUNC(__divdi3)\r
   @ args = 0, pretend = 0, frame = 0\r
index 45c0fcc3f759f0bef5dc6ca18695869a2ab1a61e..eb4c30f6a220adf6137243235d7f4205714d8817 100644 (file)
@@ -6,7 +6,7 @@
 #\r
 #------------------------------------------------------------------------------\r
 \r
-#include <AsmMacroIoLib.h>\r
+#include <AsmMacroLib.h>\r
 \r
 ASM_FUNC(__divsi3)\r
   eor  r3, r0, r0, asr #31\r
index feeea9edd12a38f85db1575ef990acece89d3575..27201de4bef8a66f08596a3a8860faf26fbac098 100644 (file)
@@ -6,7 +6,7 @@
 #\r
 #------------------------------------------------------------------------------\r
 \r
-#include <AsmMacroIoLib.h>\r
+#include <AsmMacroLib.h>\r
 \r
 #\r
 #UINT64\r
index 9f4dddad798d40cb08f3b80a05fe3e41fddd2a4e..15c99c5099e87c7635f83bc839bbbc1f9bda0296 100644 (file)
@@ -6,7 +6,7 @@
 //\r
 //------------------------------------------------------------------------------\r
 \r
-#include <AsmMacroIoLib.h>\r
+#include <AsmMacroLib.h>\r
 \r
 //\r
 // A pair of (unsigned) long longs is returned in {{r0, r1}, {r2, r3}},\r
index cc63a15b3cf6da9e63c3723b42a1d9bb9bb64f18..d0a4acd8bda44f15024aee7389335b8615f4b3cb 100644 (file)
@@ -6,7 +6,7 @@
 #\r
 #------------------------------------------------------------------------------\r
 \r
-#include <AsmMacroIoLib.h>\r
+#include <AsmMacroLib.h>\r
 \r
 #\r
 #VOID\r
index 246d5651e8d9659199361bb8602759c09129ac92..af6fd27028d11ec2f3458577fd18cf6f498911e1 100644 (file)
@@ -6,7 +6,7 @@
 #\r
 #------------------------------------------------------------------------------\r
 \r
-#include <AsmMacroIoLib.h>\r
+#include <AsmMacroLib.h>\r
 \r
 #VOID\r
 #EFIAPI\r
index 829d8deb07b6c1f198ce46f3e38d64fd14a3556f..288573c855d375056ff333e54dac4a2f2e62886e 100644 (file)
@@ -6,7 +6,7 @@
 #\r
 #------------------------------------------------------------------------------\r
 \r
-#include <AsmMacroIoLib.h>\r
+#include <AsmMacroLib.h>\r
 \r
 ASM_FUNC(__lshrdi3)\r
   cmp  r2, #31\r
index f9f1932c6dea87319f9b08ccfc29c0ecc9702bc4..d8588d3d98eb3e123415e9badcb5a9b4c888a08d 100644 (file)
@@ -6,7 +6,7 @@
 #\r
 #------------------------------------------------------------------------------\r
 \r
-#include <AsmMacroIoLib.h>\r
+#include <AsmMacroLib.h>\r
 \r
 # VOID\r
 # EFIAPI\r
index faf077dc6bd64be56dbee82378f1f748eaaa7287..e208f8fd2837f0f0a3cf46f1532f430a481ff131 100644 (file)
@@ -6,7 +6,7 @@
 #\r
 #------------------------------------------------------------------------------\r
 \r
-#include <AsmMacroIoLib.h>\r
+#include <AsmMacroLib.h>\r
 \r
 ASM_FUNC(__moddi3)\r
   stmfd  sp!, {r4, r5, r7, lr}\r
index b3299851bd8b05dc9080a8bd61315be6f04d7897..d67f88f717a77a90ea6c9fbf4b2814a7280b9254 100644 (file)
@@ -6,7 +6,7 @@
 #\r
 #------------------------------------------------------------------------------\r
 \r
-#include <AsmMacroIoLib.h>\r
+#include <AsmMacroLib.h>\r
 \r
 ASM_FUNC(__modsi3)\r
   stmfd  sp!, {r4, r5, r7, lr}\r
index adee64782e56c278489f7c98d2c33f91708a6b41..6fdc527ecce54b64a163ff11139747bd3fd1feab 100644 (file)
@@ -6,7 +6,7 @@
 #\r
 #------------------------------------------------------------------------------\r
 \r
-#include <AsmMacroIoLib.h>\r
+#include <AsmMacroLib.h>\r
 \r
 ASM_FUNC(__muldi3)\r
   stmfd  sp!, {r4, r5, r6, r7, lr}\r
index e6d55673cb69230b655dd87f43bb7029baec7377..32870878b32a7887a006a7e539b4a5888b01cb6d 100644 (file)
@@ -7,7 +7,7 @@
 #**/\r
 #\r
 \r
-#include <AsmMacroIoLib.h>\r
+#include <AsmMacroLib.h>\r
 \r
 .syntax unified\r
 \r
index fbf72dd5f10bb2554fc9fa640bc4795084d3d471..040d65d6dc27d6b912308e454cb37c941f2672b1 100644 (file)
@@ -7,7 +7,7 @@
 #**/\r
 #\r
 \r
-#include <AsmMacroIoLib.h>\r
+#include <AsmMacroLib.h>\r
 \r
 .syntax unified\r
 \r
index aea048f4fba2cf5b9808e43487e74dd25f80d37f..08fec9a8a0f2dcd4d3ae58be25e0e88f27131bce 100644 (file)
@@ -7,7 +7,7 @@
 #**/\r
 #\r
 \r
-#include <AsmMacroIoLib.h>\r
+#include <AsmMacroLib.h>\r
 \r
 .syntax unified\r
 \r
index 22aeacdecaaf2e1879af71bacb24a8d8e8124f70..a94b368ef9119e5d49c28948f027799396719687 100644 (file)
@@ -7,7 +7,7 @@
 #**/\r
 #\r
 \r
-#include <AsmMacroIoLib.h>\r
+#include <AsmMacroLib.h>\r
 \r
 .syntax unified\r
 \r
index 681e3cf6e9c5bf64f14142f216d0272ee7f66276..8d199fb0e2888d76dbd9dad47462e1c02be238a5 100644 (file)
@@ -6,7 +6,7 @@
 #\r
 #------------------------------------------------------------------------------\r
 \r
-#include <AsmMacroIoLib.h>\r
+#include <AsmMacroLib.h>\r
 \r
 ASM_FUNC(__ucmpdi2)\r
   stmfd  sp!, {r4, r5, r8, lr}\r
index 505ae545f10a9c55a647444bca05b87aa04833c1..ccb6f6c6c0f90060b36a956978674735970658cd 100644 (file)
@@ -6,7 +6,7 @@
 #\r
 #------------------------------------------------------------------------------\r
 \r
-#include <AsmMacroIoLib.h>\r
+#include <AsmMacroLib.h>\r
 \r
 ASM_FUNC(__udivdi3)\r
   stmfd  sp!, {r7, lr}\r
index a74db6fad1935808e3b0b7e921e79fa526345e9f..edee8fc336872f35b23eeba5c1dd3aa43a450b69 100644 (file)
@@ -6,7 +6,7 @@
 #\r
 #------------------------------------------------------------------------------\r
 \r
-#include <AsmMacroIoLib.h>\r
+#include <AsmMacroLib.h>\r
 \r
   .syntax unified\r
 \r
index e1f7da782af6bd77fd5a58c2774d09b85755a45d..100a6a00d899823dabf30140dd2fd5ff84ceb57f 100644 (file)
@@ -6,7 +6,7 @@
 #\r
 #------------------------------------------------------------------------------\r
 \r
-#include <AsmMacroIoLib.h>\r
+#include <AsmMacroLib.h>\r
 \r
   .syntax unified\r
 \r
index 3f26e2c5c81b26c2d41cfc1f2ac43fc72ac32db8..b22a785e08235ab1008e23a2da14069fa0f82f96 100644 (file)
@@ -6,7 +6,7 @@
 #\r
 #------------------------------------------------------------------------------\r
 \r
-#include <AsmMacroIoLib.h>\r
+#include <AsmMacroLib.h>\r
 \r
 ASM_FUNC(__umoddi3)\r
   stmfd  sp!, {r7, lr}\r
index b48b25b7dce5395416d06c0b60dd98539fa7ee90..ee548afe17dafe0a706af99c3cad93247350faf8 100644 (file)
@@ -6,7 +6,7 @@
 #\r
 #------------------------------------------------------------------------------\r
 \r
-#include <AsmMacroIoLib.h>\r
+#include <AsmMacroLib.h>\r
 \r
 ASM_FUNC(__umodsi3)\r
   stmfd  sp!, {r4, r5, r7, lr}\r
index e8a1dbad86929c8787cf20508868901fa1139b3b..132975c6a146cf79c32bcaa962df92964754c798 100644 (file)
@@ -6,7 +6,7 @@
 #\r
 #------------------------------------------------------------------------------\r
 \r
-#include <AsmMacroIoLib.h>\r
+#include <AsmMacroLib.h>\r
 \r
 #\r
 #UINT32\r
index 9432ac4317991ae4e841919dfb854877b168354b..2c56ba3e063bcf7415f685fd485ef55ccb219175 100644 (file)
@@ -6,7 +6,7 @@
 #\r
 #------------------------------------------------------------------------------\r
 \r
-#include <AsmMacroIoLib.h>\r
+#include <AsmMacroLib.h>\r
 \r
 #\r
 #UINT32\r
index a443075639332b6bd5a53fe815192228b731d129..10ecbcade62e08c46432f020bbfcdc371226bc19 100644 (file)
@@ -7,7 +7,7 @@
 #\r
 #------------------------------------------------------------------------------\r
 \r
-#include <AsmMacroIoLibV8.h>\r
+#include <AsmMacroLib.h>\r
 \r
 ASM_FUNC(GccSemihostCall)\r
   hlt     #0xf000\r
index d6f81ec2c957e720f76c71a0f7ef75a1dc9b85df..da02a1f1cf0bd5ea742abc7d75f72009df12b590 100644 (file)
@@ -6,7 +6,7 @@
 #\r
 #------------------------------------------------------------------------------\r
 \r
-#include <AsmMacroIoLib.h>\r
+#include <AsmMacroLib.h>\r
 \r
 /*\r
   Semihosting operation request mechanism\r
index 1eeb7fed6f1950390a4fca372006a8df0055a7ab..873729343cfa3b98db757d84ada19d701b467f77 100644 (file)
@@ -5,7 +5,7 @@
 //\r
 //\r
 \r
-#include <AsmMacroIoLibV8.h>\r
+#include <AsmMacroLib.h>\r
 #include <Library/ArmLib.h>\r
 \r
 ASM_FUNC(ArmPlatformPeiBootAction)\r
index 342d6d5e0a9d9f9e268e9603de49fc5ab0de7c51..0e11c34af5d109d44b00242fd163ca04192a8ec0 100644 (file)
@@ -5,7 +5,7 @@
 //\r
 //\r
 \r
-#include <AsmMacroIoLib.h>\r
+#include <AsmMacroLib.h>\r
 #include <Library/ArmLib.h>\r
 \r
 ASM_FUNC(ArmPlatformPeiBootAction)\r
index efb6c5ade946dbe7940a1ab2805f0a272e6a0ca1..7263ee9374d11fd59d5bedc042967a53da8feeaf 100644 (file)
@@ -5,7 +5,7 @@
 //\r
 //\r
 \r
-#include <AsmMacroIoLibV8.h>\r
+#include <AsmMacroLib.h>\r
 \r
 ASM_FUNC(_ModuleEntryPoint)\r
   // Do early platform specific actions\r
index ab5b023fa974a97ccf783454000d5800d703c110..fc28939afe48c081d9de914cc32e181f4f3f135f 100644 (file)
@@ -5,7 +5,7 @@
 //\r
 //\r
 \r
-#include <AsmMacroIoLib.h>\r
+#include <AsmMacroLib.h>\r
 \r
 #include <Arm/AArch32.h>\r
 \r
index d0d6bc44f78c8618fcfab87d21381c47f2c59b94..433761e3eb72587d94eb3d723cdadf3d6fd38158 100644 (file)
@@ -6,7 +6,7 @@
 #\r
 \r
 #include <AArch64/AArch64.h>\r
-#include <AsmMacroIoLibV8.h>\r
+#include <AsmMacroLib.h>\r
 #include <Base.h>\r
 #include <AutoGen.h>\r
 \r
index 9b81b96a4949861156fb16e1d352c8ec99127334..c784c4a1cd452483ae98778d252d7ab8d0e870e0 100644 (file)
@@ -5,7 +5,7 @@
 #\r
 #=======================================================================================\r
 \r
-#include <AsmMacroIoLibV8.h>\r
+#include <AsmMacroLib.h>\r
 #include <AArch64/AArch64.h>\r
 \r
 // Setup EL1 while in EL1\r
index 7addae6cffd399adec6d97a4a2aa2becefcdcc8d..154be1111d099d21b8d5cd33d5ceb6114c3fa6ac 100644 (file)
@@ -5,7 +5,7 @@
 //\r
 //\r
 \r
-#include <AsmMacroIoLibV8.h>\r
+#include <AsmMacroLib.h>\r
 \r
 ASM_FUNC(_ModuleEntryPoint)\r
   // Do early platform specific actions\r
index 308b8764fc696ed246d53ba80d0f41dc71d9f262..707404043578886774512d8724fc4e277c2a0ac6 100644 (file)
@@ -8,7 +8,7 @@
 #\r
 #------------------------------------------------------------------------------\r
 \r
-#include <AsmMacroIoLibV8.h>\r
+#include <AsmMacroLib.h>\r
 \r
 #/**\r
 #  This allows the caller to switch the stack and return\r
index 956ae8471459bccc6130bc054b9f160928958743..364b512604243e42b5dd0a06fa72da3e940feda8 100644 (file)
@@ -5,7 +5,7 @@
 #\r
 #\r
 \r
-#include <AsmMacroIoLib.h>\r
+#include <AsmMacroLib.h>\r
 #include <Base.h>\r
 #include <AutoGen.h>\r
 \r
index b3c67234e9c9e4a9f182368aba6cb419dbfa95a9..1207497dc709cef6238a0a571bbc9c256fe2e051 100644 (file)
@@ -5,7 +5,7 @@
 //\r
 //\r
 \r
-#include <AsmMacroIoLib.h>\r
+#include <AsmMacroLib.h>\r
 \r
 ASM_FUNC(_ModuleEntryPoint)\r
   // Do early platform specific actions\r
index d64772b8edbfd5428d17377096ce47903f199596..028ee26e89e4ab8a1bd9101b4fcd608277140909 100644 (file)
@@ -6,7 +6,7 @@
 #\r
 #------------------------------------------------------------------------------\r
 \r
-#include <AsmMacroIoLib.h>\r
+#include <AsmMacroLib.h>\r
 \r
 #/**\r
 #  This allows the caller to switch the stack and return\r
index bdb460c7ee7bb30527e84056d6646ab1c7fdd2fd..f20395c38b7dd5edef2a6312cd0314c0ff975920 100644 (file)
@@ -5,7 +5,7 @@
 //\r
 //\r
 \r
-#include <AsmMacroIoLibV8.h>\r
+#include <AsmMacroLib.h>\r
 \r
   .macro mov_i, reg:req, imm:req\r
   movz   \reg, :abs_g1:\imm\r
index fc06c28daaf410606580c629c433dc20855666ed..06a0020f250c1aa0b19d934be9a13f11c429d2f4 100644 (file)
@@ -6,7 +6,7 @@
 //\r
 //\r
 \r
-#include <AsmMacroIoLibV8.h>\r
+#include <AsmMacroLib.h>\r
 \r
 ASM_FUNC(_ModuleEntryPoint)\r
   //\r
index f0536c65eb52f78e9c21d600731c22795d498029..cfb5de864fb9da51a2ba3258a7bbe3efdcfd2078 100644 (file)
@@ -6,7 +6,7 @@
 //\r
 //\r
 \r
-#include <AsmMacroIoLib.h>\r
+#include <AsmMacroLib.h>\r
 \r
 ASM_FUNC(_ModuleEntryPoint)\r
   // Do early platform specific actions\r
diff --git a/MdePkg/Include/AArch64/AsmMacroLib.h b/MdePkg/Include/AArch64/AsmMacroLib.h
new file mode 100644 (file)
index 0000000..a5c8635
--- /dev/null
@@ -0,0 +1,56 @@
+/** @file\r
+  Macros to work around lack of Clang support for LDR register, =expr\r
+\r
+  Copyright (c) 2008 - 2009, Apple Inc. All rights reserved.<BR>\r
+  Portions copyright (c) 2011 - 2014, ARM Ltd. All rights reserved.<BR>\r
+  Copyright (c) 2016, Linaro Ltd. All rights reserved.<BR>\r
+\r
+  SPDX-License-Identifier: BSD-2-Clause-Patent\r
+\r
+**/\r
+\r
+#ifndef ASM_MACRO_IO_LIBV8_H_\r
+#define ASM_MACRO_IO_LIBV8_H_\r
+\r
+// CurrentEL : 0xC = EL3; 8 = EL2; 4 = EL1\r
+// This only selects between EL1 and EL2, else we die.\r
+// Provide the Macro with a safe temp xreg to use.\r
+#define EL1_OR_EL2(SAFE_XREG)        \\r
+        mrs    SAFE_XREG, CurrentEL ;\\r
+        cmp    SAFE_XREG, #0x8      ;\\r
+        b.gt   .                    ;\\r
+        b.eq   2f                   ;\\r
+        cbnz   SAFE_XREG, 1f        ;\\r
+        b      .                    ;// We should never get here\r
+\r
+#define _ASM_FUNC(Name, Section)    \\r
+  .global   Name                  ; \\r
+  .section  #Section, "ax"        ; \\r
+  .type     Name, %function       ; \\r
+  Name:                           ; \\r
+  AARCH64_BTI(c)\r
+\r
+#define _ASM_FUNC_ALIGN(Name, Section, Align)       \\r
+  .global   Name                                  ; \\r
+  .section  #Section, "ax"                        ; \\r
+  .type     Name, %function                       ; \\r
+  .balign   Align                                 ; \\r
+  Name:                                           ; \\r
+  AARCH64_BTI(c)\r
+\r
+#define ASM_FUNC(Name)  _ASM_FUNC(ASM_PFX(Name), .text. ## Name)\r
+\r
+#define ASM_FUNC_ALIGN(Name, Align)  \\r
+  _ASM_FUNC_ALIGN(ASM_PFX(Name), .text. ## Name, Align)\r
+\r
+#define MOV32(Reg, Val)                   \\r
+  movz      Reg, (Val) >> 16, lsl #16   ; \\r
+  movk      Reg, (Val) & 0xffff\r
+\r
+#define MOV64(Reg, Val)                             \\r
+  movz      Reg, (Val) >> 48, lsl #48             ; \\r
+  movk      Reg, ((Val) >> 32) & 0xffff, lsl #32  ; \\r
+  movk      Reg, ((Val) >> 16) & 0xffff, lsl #16  ; \\r
+  movk      Reg, (Val) & 0xffff\r
+\r
+#endif // ASM_MACRO_IO_LIBV8_H_\r
diff --git a/MdePkg/Include/Arm/AsmMacroLib.h b/MdePkg/Include/Arm/AsmMacroLib.h
new file mode 100644 (file)
index 0000000..2493a15
--- /dev/null
@@ -0,0 +1,38 @@
+/** @file\r
+  Macros to work around lack of Apple support for LDR register, =expr\r
+\r
+  Copyright (c) 2008 - 2009, Apple Inc. All rights reserved.<BR>\r
+  Copyright (c) 2011-2012, ARM Ltd. All rights reserved.<BR>\r
+  Copyright (c) 2016, Linaro Ltd. All rights reserved.<BR>\r
+\r
+  SPDX-License-Identifier: BSD-2-Clause-Patent\r
+\r
+**/\r
+\r
+#ifndef ASM_MACRO_IO_LIB_H_\r
+#define ASM_MACRO_IO_LIB_H_\r
+\r
+#define _ASM_FUNC(Name, Section)    \\r
+  .global   Name                  ; \\r
+  .section  #Section, "ax"        ; \\r
+  .type     Name, %function       ; \\r
+  .p2align  2                     ; \\r
+  Name:\r
+\r
+#define ASM_FUNC(Name)  _ASM_FUNC(ASM_PFX(Name), .text. ## Name)\r
+\r
+#define MOV32(Reg, Val)                       \\r
+  movw      Reg, #(Val) & 0xffff            ; \\r
+  movt      Reg, #(Val) >> 16\r
+\r
+#define ADRL(Reg, Sym)                        \\r
+  movw      Reg, #:lower16:(Sym) - (. + 16) ; \\r
+  movt      Reg, #:upper16:(Sym) - (. + 12) ; \\r
+  add       Reg, Reg, pc\r
+\r
+#define LDRL(Reg, Sym)                        \\r
+  movw      Reg, #:lower16:(Sym) - (. + 16) ; \\r
+  movt      Reg, #:upper16:(Sym) - (. + 12) ; \\r
+  ldr       Reg, [pc, Reg]\r
+\r
+#endif // ASM_MACRO_IO_LIB_H_\r