source: mainline/kernel/arch/arm32/src/eabi.S

Last change on this file was e98f1c3e, checked in by Martin Decky <martin@…>, 9 years ago

cstyle (no change in functionality)

  • Property mode set to 100644
File size: 2.4 KB
RevLine 
[4ceef572]1#
2# Copyright (c) 2012 Martin Decky
3# All rights reserved.
4#
5# Redistribution and use in source and binary forms, with or without
6# modification, are permitted provided that the following conditions
7# are met:
8#
9# - Redistributions of source code must retain the above copyright
10# notice, this list of conditions and the following disclaimer.
11# - Redistributions in binary form must reproduce the above copyright
12# notice, this list of conditions and the following disclaimer in the
13# documentation and/or other materials provided with the distribution.
14# - The name of the author may not be used to endorse or promote products
15# derived from this software without specific prior written permission.
16#
17# THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR
18# IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES
19# OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED.
20# IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT,
21# INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT
22# NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
23# DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
24# THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
25# (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF
26# THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
27#
28
[73b3ecd]29#include <abi/asmtool.h>
[4ceef572]30
[73b3ecd]31.text
[4ceef572]32
[73b3ecd]33FUNCTION_BEGIN(__aeabi_idiv)
[d11a181]34 push {lr}
[4ceef572]35 bl __divsi3
[d11a181]36 pop {lr}
[ab63b04e]37 mov pc, lr
[73b3ecd]38FUNCTION_END(__aeabi_idiv)
[4ceef572]39
[73b3ecd]40FUNCTION_BEGIN(__aeabi_uidiv)
[d11a181]41 push {lr}
[4ceef572]42 bl __udivsi3
[d11a181]43 pop {lr}
[ab63b04e]44 mov pc, lr
[73b3ecd]45FUNCTION_END(__aeabi_uidiv)
[4ceef572]46
[73b3ecd]47FUNCTION_BEGIN(__aeabi_idivmod)
[d11a181]48 push {lr}
49 sub sp, sp, #12
50 add r2, sp, #4
51 bl __udivmodsi3
52 ldr r1, [sp, #4]
53 add sp, sp, #12
54 pop {lr}
[ab63b04e]55 mov pc, lr
[73b3ecd]56FUNCTION_END(__aeabi_idivmod)
[4ceef572]57
[73b3ecd]58FUNCTION_BEGIN(__aeabi_uidivmod)
[d11a181]59 push {lr}
60 sub sp, sp, #12
61 add r2, sp, #4
[4ceef572]62 bl __udivmodsi3
[d11a181]63 ldr r1, [sp, #4]
64 add sp, sp, #12
65 pop {lr}
[ab63b04e]66 mov pc, lr
[73b3ecd]67FUNCTION_END(__aeabi_uidivmod)
[4ceef572]68
[73b3ecd]69FUNCTION_BEGIN(__aeabi_ldivmod)
[d11a181]70 push {lr}
71 sub sp, sp, #24
72 push {sp}
[4ceef572]73 bl __divmoddi3
[d11a181]74 add sp, sp, #4
[4ceef572]75 pop {r2, r3}
[d11a181]76 add sp, sp, #16
77 pop {lr}
[ab63b04e]78 mov pc, lr
[73b3ecd]79FUNCTION_END(__aeabi_ldivmod)
[4ceef572]80
[73b3ecd]81FUNCTION_BEGIN(__aeabi_uldivmod)
[d11a181]82 push {lr}
83 sub sp, sp, #24
84 push {sp}
[4ceef572]85 bl __udivmoddi3
[d11a181]86 add sp, sp, #4
[4ceef572]87 pop {r2, r3}
[d11a181]88 add sp, sp, #16
89 pop {lr}
[ab63b04e]90 mov pc, lr
[73b3ecd]91FUNCTION_END(__aeabi_uldivmod)
Note: See TracBrowser for help on using the repository browser.