/* * PROJECT: ReactOS CRT library * LICENSE: MIT (https://spdx.org/licenses/MIT) * PURPOSE: Implementation of __rt_sdiv64 * COPYRIGHT: Copyright 2015 Timo Kreuzer * Copyright 2021 Roman Masanin <36927roma@gmail.com> */ /* INCLUDES ******************************************************************/ #include IMPORT __rt_sdiv64_worker /* CODE **********************************************************************/ TEXTAREA /* IN: r1:r0 = divisor IN: r3:r2 = dividend OUT: r1:r0 = quotient OUT: r3:r2 = remainder */ NESTED_ENTRY __rt_sdiv64 /* Allocate stack space and store parameters there */ push {lr} sub sp,sp,0x10 mov r12,sp push {r2,r3} PROLOG_END /* r0 = ret*, r2:r3 = divisor, [sp] = dividend */ mov r3,r1 mov r2,r0 mov r0,r12 /* Call the C worker function */ bl __rt_sdiv64_worker add sp,sp,0x08 /* Move result data into the appropriate registers and return */ pop {r0,r1,r2,r3,pc} NESTED_END __rt_sdiv64 END /* EOF */