Home | History | Annotate | Download | only in Include
      1 ;%HEADER%
      2 ;/** @file
      3 ;  Macros to work around lack of Apple support for LDR register, =expr
      4 ;
      5 ;  Copyright (c) 2009, Apple Inc. All rights reserved.<BR>
      6 ;  Copyright (c) 2011-2012, ARM Ltd. All rights reserved.<BR>
      7 ;
      8 ;  This program and the accompanying materials
      9 ;  are licensed and made available under the terms and conditions of the BSD License
     10 ;  which accompanies this distribution.  The full text of the license may be found at
     11 ;  http://opensource.org/licenses/bsd-license.php
     12 ;
     13 ;  THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS,
     14 ;  WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED.
     15 ;
     16 ;**/
     17 
     18 
     19   MACRO
     20   MmioWrite32Macro $Address, $Data
     21   ldr  r1, = ($Address)
     22   ldr  r0, = ($Data)
     23   str  r0, [r1]
     24   MEND
     25 
     26   MACRO
     27   MmioOr32Macro $Address, $OrData
     28   ldr  r1, =($Address)
     29   ldr  r2, =($OrData)
     30   ldr  r0, [r1]
     31   orr  r0, r0, r2
     32   str  r0, [r1]
     33   MEND
     34 
     35   MACRO
     36   MmioAnd32Macro $Address, $AndData
     37   ldr  r1, =($Address)
     38   ldr  r2, =($AndData)
     39   ldr  r0, [r1]
     40   and  r0, r0, r2
     41   str  r0, [r1]
     42   MEND
     43 
     44   MACRO
     45   MmioAndThenOr32Macro $Address, $AndData, $OrData
     46   ldr  r1, =($Address)
     47   ldr  r0, [r1]
     48   ldr  r2, =($AndData)
     49   and  r0, r0, r2
     50   ldr  r2, =($OrData)
     51   orr  r0, r0, r2
     52   str  r0, [r1]
     53   MEND
     54 
     55   MACRO
     56   MmioWriteFromReg32Macro $Address, $Reg
     57   ldr  r1, =($Address)
     58   str  $Reg, [r1]
     59   MEND
     60 
     61   MACRO
     62   MmioRead32Macro $Address
     63   ldr  r1, =($Address)
     64   ldr  r0, [r1]
     65   MEND
     66 
     67   MACRO
     68   MmioReadToReg32Macro $Address, $Reg
     69   ldr  r1, =($Address)
     70   ldr  $Reg, [r1]
     71   MEND
     72 
     73   MACRO
     74   LoadConstantMacro $Data
     75   ldr  r0, =($Data)
     76   MEND
     77 
     78   MACRO
     79   LoadConstantToRegMacro $Data, $Reg
     80   ldr  $Reg, =($Data)
     81   MEND
     82 
     83   END
     84