;%HEADER% ;/** @file ; Macros to work around lack of Apple support for LDR register, =expr ; ; Copyright (c) 2009, Apple Inc. All rights reserved.<BR> ; Copyright (c) 2011-2012, ARM Ltd. All rights reserved.<BR> ; ; 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] MEND MACRO MmioReadToReg32Macro $Address, $Reg ldr r1, =($Address) ldr $Reg, [r1] MEND MACRO LoadConstantMacro $Data ldr r0, =($Data) MEND MACRO LoadConstantToRegMacro $Data, $Reg ldr $Reg, =($Data) MEND END