Home | History | Annotate | Line # | Download | only in arm
      1 /*	$NetBSD: llsr.S,v 1.1.1.1 2018/08/16 18:17:47 jmcneill Exp $	*/
      2 
      3 #------------------------------------------------------------------------------
      4 #
      5 # Copyright (c) 2013, ARM. All rights reserved.<BR>
      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 #include "edk2asm.h"
     18 
     19 .text
     20 .align 2
     21 GCC_ASM_EXPORT(__aeabi_llsr)
     22 
     23 #
     24 #VOID
     25 #EFIAPI
     26 #__aeabi_llsr (
     27 # IN  VOID    *Destination,
     28 # IN  VOID    *Source,
     29 # IN  UINT32  Size
     30 # );
     31 #
     32 ASM_PFX(__aeabi_llsr):
     33     subs     r3,r2,#0x20
     34     bpl      1f
     35     rsb      r3,r2,#0x20
     36     lsr      r0,r0,r2
     37     orr      r0,r0,r1,lsl r3
     38     lsr      r1,r1,r2
     39     bx       lr
     40 1:
     41     lsr      r0,r1,r3
     42     mov      r1,#0
     43     bx       lr
     44