Home | History | Annotate | Download | only in Arm
      1 ##------------------------------------------------------------------------------
      2 #
      3 # MemoryFence() for AArch64
      4 #
      5 # Copyright (c) 2013, ARM Ltd. All rights reserved.
      6 #
      7 # This program and the accompanying materials
      8 # are licensed and made available under the terms and conditions of the BSD License
      9 # which accompanies this distribution.  The full text of the license may be found at
     10 # http://opensource.org/licenses/bsd-license.php.
     11 #
     12 # THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS,
     13 # WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED.
     14 #
     15 ##------------------------------------------------------------------------------
     16 
     17 .text
     18 .p2align 2
     19 
     20 GCC_ASM_EXPORT(MemoryFence)
     21 
     22 
     23 #/**
     24 #  Used to serialize load and store operations.
     25 #
     26 #  All loads and stores that proceed calls to this function are guaranteed to be
     27 #  globally visible when this function returns.
     28 #
     29 #**/
     30 #VOID
     31 #EFIAPI
     32 #MemoryFence (
     33 #  VOID
     34 #  );
     35 #
     36 ASM_PFX(MemoryFence):
     37     // System wide Data Memory Barrier.
     38     dmb
     39     bx   lr
     40