]> git.proxmox.com Git - mirror_edk2.git/blobdiff - ArmPkg/Library/CompilerIntrinsicsLib/Arm/div.asm
ArmPkg: Replace BSD License with BSD+Patent License
[mirror_edk2.git] / ArmPkg / Library / CompilerIntrinsicsLib / Arm / div.asm
index 13f701358ec604745b49478ab02ff81d720aa840..3cbeaa4c1b50f465ca6c2b8414a45b590a943ab7 100644 (file)
@@ -1,14 +1,9 @@
-//------------------------------------------------------------------------------ \r
+//------------------------------------------------------------------------------\r
 //\r
 // Copyright (c) 2008 - 2009, Apple Inc. All rights reserved.<BR>\r
+// Copyright (c) 2018, Pete Batard. All rights reserved.<BR>\r
 //\r
-// This program and the accompanying materials\r
-// are licensed and made available under the terms and conditions of the BSD License\r
-// which accompanies this distribution.  The full text of the license may be found at\r
-// http://opensource.org/licenses/bsd-license.php\r
-//\r
-// THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS,\r
-// WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED.\r
+// SPDX-License-Identifier: BSD-2-Clause-Patent\r
 //\r
 //------------------------------------------------------------------------------\r
 \r
     EXPORT  __aeabi_uidivmod\r
     EXPORT  __aeabi_idiv\r
     EXPORT  __aeabi_idivmod\r
-           \r
+    EXPORT  __rt_udiv\r
+    EXPORT  __rt_sdiv\r
+\r
     AREA  Math, CODE, READONLY\r
 \r
 ;\r
 ;UINT32\r
 ;EFIAPI\r
-;__aeabi_uidivmode (\r
-;  IN UINT32  Dividen\r
+;__aeabi_uidivmod (\r
+;  IN UINT32  Dividend\r
 ;  IN UINT32  Divisor\r
 ;  );\r
 ;\r
-\r
 __aeabi_uidiv\r
 __aeabi_uidivmod\r
     RSBS    r12, r1, r0, LSR #4\r
@@ -39,11 +35,41 @@ __aeabi_uidivmod
     MOV     r3, #0\r
     B       __arm_div_large\r
 \r
+;\r
+;UINT64\r
+;EFIAPI\r
+;__rt_udiv (\r
+;  IN UINT32  Divisor,\r
+;  IN UINT32  Dividend\r
+;  );\r
+;\r
+__rt_udiv\r
+    ; Swap R0 and R1\r
+    MOV     r12, r0\r
+    MOV     r0, r1\r
+    MOV     r1, r12\r
+    B       __aeabi_uidivmod\r
+\r
+;\r
+;UINT64\r
+;EFIAPI\r
+;__rt_sdiv (\r
+;  IN INT32  Divisor,\r
+;  IN INT32  Dividend\r
+;  );\r
+;\r
+__rt_sdiv\r
+    ; Swap R0 and R1\r
+    MOV     r12, r0\r
+    MOV     r0, r1\r
+    MOV     r1, r12\r
+    B       __aeabi_idivmod\r
+\r
 ;\r
 ;INT32\r
 ;EFIAPI\r
-;__aeabi_idivmode (\r
-;  IN INT32  Dividen\r
+;__aeabi_idivmod (\r
+;  IN INT32  Dividend\r
 ;  IN INT32  Divisor\r
 ;  );\r
 ;\r
@@ -150,6 +176,5 @@ label1
     ; What to do about division by zero?  For now, just return.\r
 __aeabi_idiv0\r
     BX      r14\r
\r
-    END\r
 \r
+    END\r