X-Git-Url: https://git.proxmox.com/?a=blobdiff_plain;f=ArmPkg%2FInclude%2FAsmMacroIoLib.inc;h=ce7a1488daea088c0b42b11790b589e5c7e21307;hb=0f87c53d0d0eb7e7c003e209705ec79264e0852b;hp=23f3c44d6bb789d2754776955efd196686c60007;hpb=2ef2b01e07c02db339f34004445734a2dbdd80e1;p=mirror_edk2.git diff --git a/ArmPkg/Include/AsmMacroIoLib.inc b/ArmPkg/Include/AsmMacroIoLib.inc index 23f3c44d6b..ce7a1488da 100644 --- a/ArmPkg/Include/AsmMacroIoLib.inc +++ b/ArmPkg/Include/AsmMacroIoLib.inc @@ -2,73 +2,38 @@ ;/** @file ; Macros to work around lack of Apple support for LDR register, =expr ; -; Copyright (c) 2009, Apple, Inc. All rights reserved. +; Copyright (c) 2009, Apple Inc. All rights reserved.
+; Copyright (c) 2011-2012, ARM Ltd. All rights reserved.
+; +; This program and the accompanying materials +; are licensed and made available under the terms and conditions of the BSD License +; which accompanies this distribution. The full text of the license may be found at +; http://opensource.org/licenses/bsd-license.php +; +; THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS, +; WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED. ; ;**/ - MACRO - MmioWrite32Macro $Address, $Data - ldr r1, = ($Address) - ldr r0, = ($Data) - str r0, [r1] - MEND - - MACRO - MmioOr32Macro $Address, $OrData - ldr r1, =($Address) - ldr r2, =($OrData) - ldr r0, [r1] - orr r0, r0, r2 - str r0, [r1] - MEND - - MACRO - MmioAnd32Macro $Address, $AndData - ldr r1, =($Address) - ldr r2, =($AndData) - ldr r0, [r1] - and r0, r0, r2 - str r0, [r1] - MEND - - MACRO - MmioAndThenOr32Macro $Address, $AndData, $OrData - ldr r1, =($Address) - ldr r0, [r1] - ldr r2, =($AndData) - and r0, r0, r2 - ldr r2, =($OrData) - orr r0, r0, r2 - str r0, [r1] - MEND - - MACRO - MmioWriteFromReg32Macro $Address, $Reg - ldr r1, =($Address) - str $Reg, [r1] - MEND - - MACRO - MmioRead32Macro $Address - ldr r1, =($Address) - ldr r0, [r1] + MACRO + adrll $Reg, $Symbol + add $Reg, pc, #-8 + RELOC R_ARM_ALU_PC_G0_NC, $Symbol + add $Reg, $Reg, #-4 + RELOC R_ARM_ALU_PC_G1_NC, $Symbol + add $Reg, $Reg, #0 + RELOC R_ARM_ALU_PC_G2, $Symbol MEND - MACRO - MmioReadToReg32Macro $Address, $Reg - ldr r1, =($Address) - ldr $Reg, [r1] + MACRO + ldrl $Reg, $Symbol + add $Reg, pc, #-8 + RELOC R_ARM_ALU_PC_G0_NC, $Symbol + add $Reg, $Reg, #-4 + RELOC R_ARM_ALU_PC_G1_NC, $Symbol + ldr $Reg, [$Reg, #0] + RELOC R_ARM_LDR_PC_G2, $Symbol MEND - MACRO - LoadConstantMacro $Data - ldr r0, =($Data) - MEND - - MACRO - LoadConstantToRegMacro $Data, $Reg - ldr $Reg, =($Data) - MEND - END