Home | History | Annotate | Download | only in builtins
      1 //===-- aeabi_uldivmod.S - EABI uldivmod implementation -------------------===//
      2 //
      3 //	             The LLVM Compiler Infrastructure
      4 //
      5 // This file is dual licensed under the MIT and the University of Illinois Open
      6 // Source Licenses. See LICENSE.TXT for details.
      7 //
      8 //===----------------------------------------------------------------------===//
      9 
     10 // struct { uint64_t quot, uint64_t rem}
     11 //	__aeabi_uldivmod(uint64_t numerator, uint64_t denominator) {
     12 //   uint64_t rem, quot;
     13 //   quot = __udivmoddi4(numerator, denominator, &rem);
     14 //   return {quot, rem};
     15 // }
     16 
     17 	.syntax unified
     18 	.text
     19 	.align	2
     20 	.global	__aeabi_uldivmod
     21 	.thumb
     22 	.thumb_func
     23 	.type	__aeabi_uldivmod, %function
     24 __aeabi_uldivmod:
     25 	push	{lr}
     26 	sub	sp, sp, #16
     27 	add	r12, sp, #8
     28 	str	r12, [sp]
     29 	bl	__udivmoddi4
     30 	ldr	r2, [sp, #8]
     31 	ldr	r3, [sp, #12]
     32 	add	sp, sp, #16
     33 	pop	{pc}
     34 	.size __aeabi_uldivmod, .-__aeabi_uldivmod
     35