]> git.proxmox.com Git - mirror_edk2.git/blobdiff - ArmPkg/Include/AsmMacroIoLib.inc
ArmPlatformPkg/NorFlashDxe: initialize varstore headers eagerly
[mirror_edk2.git] / ArmPkg / Include / AsmMacroIoLib.inc
index 301bd890ac4d6ca93a20e09a56893a8d21c7f44b..ce7a1488daea088c0b42b11790b589e5c7e21307 100644 (file)
 \r
 \r
   MACRO\r
-  MmioWrite32Macro $Address, $Data\r
-  ldr  r1, = ($Address)\r
-  ldr  r0, = ($Data)\r
-  str  r0, [r1]\r
-  MEND\r
-\r
-  MACRO\r
-  MmioOr32Macro $Address, $OrData\r
-  ldr  r1, =($Address)\r
-  ldr  r2, =($OrData)\r
-  ldr  r0, [r1]\r
-  orr  r0, r0, r2\r
-  str  r0, [r1]\r
-  MEND\r
-\r
-  MACRO\r
-  MmioAnd32Macro $Address, $AndData\r
-  ldr  r1, =($Address)\r
-  ldr  r2, =($AndData)\r
-  ldr  r0, [r1]\r
-  and  r0, r0, r2\r
-  str  r0, [r1]\r
-  MEND\r
-\r
-  MACRO\r
-  MmioAndThenOr32Macro $Address, $AndData, $OrData\r
-  ldr  r1, =($Address)\r
-  ldr  r0, [r1]\r
-  ldr  r2, =($AndData)\r
-  and  r0, r0, r2\r
-  ldr  r2, =($OrData)\r
-  orr  r0, r0, r2\r
-  str  r0, [r1]\r
-  MEND\r
-\r
-  MACRO\r
-  MmioWriteFromReg32Macro $Address, $Reg\r
-  ldr  r1, =($Address)\r
-  str  $Reg, [r1]\r
-  MEND\r
-\r
-  MACRO\r
-  MmioRead32Macro $Address\r
-  ldr  r1, =($Address)\r
-  ldr  r0, [r1]\r
-  MEND\r
-\r
-  MACRO\r
-  MmioReadToReg32Macro $Address, $Reg\r
-  ldr  r1, =($Address)\r
-  ldr  $Reg, [r1]\r
-  MEND\r
-\r
-  MACRO\r
-  LoadConstantMacro $Data\r
-  ldr  r0, =($Data)\r
-  MEND\r
-\r
-  MACRO\r
-  LoadConstantToRegMacro $Data, $Reg\r
-  ldr  $Reg, =($Data)\r
-  MEND\r
-\r
-  ; The reserved place must be 8-bytes aligned for pushing 64-bit variable on the stack\r
-  ; Note: Global Size will be modified\r
-  MACRO\r
-  SetPrimaryStack $StackTop, $GlobalSize, $Tmp\r
-  and     $Tmp, $GlobalSize, #7\r
-  rsbne   $Tmp, $Tmp, #8\r
-  add     $GlobalSize, $GlobalSize, $Tmp\r
-  sub     sp, $StackTop, $GlobalSize\r
-\r
-  ; Set all the global variables to 0\r
-  mov     $Tmp, sp\r
-  mov     $GlobalSize, #0x0\r
-_SetPrimaryStackInitGlobals\r
-  cmp     $Tmp, $StackTop\r
-  beq     _SetPrimaryStackEnd\r
-  str     $GlobalSize, [$Tmp], #4\r
-  b       _SetPrimaryStackInitGlobals\r
-_SetPrimaryStackEnd\r
-  MEND\r
-\r
-  MACRO\r
-  InitializePrimaryStack $GlobalSize, $Tmp1\r
-  and     $Tmp1, $GlobalSize, #7\r
-  rsbne   $Tmp1, $Tmp1, #8\r
-  add     $GlobalSize, $GlobalSize, $Tmp1\r
-\r
-  mov     $Tmp1, sp\r
-  sub     sp, $GlobalSize\r
-  ; Set all the global variables to 0\r
-  mov     $GlobalSize, #0x0\r
-_InitializePrimaryStackLoop\r
-  cmp     $Tmp1, sp\r
-  bls     _InitializePrimaryStackEnd\r
-  str     $GlobalSize, [$Tmp1, #-4]!\r
-  b       _InitializePrimaryStackLoop\r
-_InitializePrimaryStackEnd\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