source: mainline/kernel/arch/arm32/src/eabi.S@ 3bacee1

lfn serial ticket/834-toolchain-update topic/msim-upgrade topic/simplify-dev-export
Last change on this file since 3bacee1 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
Line 
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
29#include <abi/asmtool.h>
30
31.text
32
33FUNCTION_BEGIN(__aeabi_idiv)
34 push {lr}
35 bl __divsi3
36 pop {lr}
37 mov pc, lr
38FUNCTION_END(__aeabi_idiv)
39
40FUNCTION_BEGIN(__aeabi_uidiv)
41 push {lr}
42 bl __udivsi3
43 pop {lr}
44 mov pc, lr
45FUNCTION_END(__aeabi_uidiv)
46
47FUNCTION_BEGIN(__aeabi_idivmod)
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}
55 mov pc, lr
56FUNCTION_END(__aeabi_idivmod)
57
58FUNCTION_BEGIN(__aeabi_uidivmod)
59 push {lr}
60 sub sp, sp, #12
61 add r2, sp, #4
62 bl __udivmodsi3
63 ldr r1, [sp, #4]
64 add sp, sp, #12
65 pop {lr}
66 mov pc, lr
67FUNCTION_END(__aeabi_uidivmod)
68
69FUNCTION_BEGIN(__aeabi_ldivmod)
70 push {lr}
71 sub sp, sp, #24
72 push {sp}
73 bl __divmoddi3
74 add sp, sp, #4
75 pop {r2, r3}
76 add sp, sp, #16
77 pop {lr}
78 mov pc, lr
79FUNCTION_END(__aeabi_ldivmod)
80
81FUNCTION_BEGIN(__aeabi_uldivmod)
82 push {lr}
83 sub sp, sp, #24
84 push {sp}
85 bl __udivmoddi3
86 add sp, sp, #4
87 pop {r2, r3}
88 add sp, sp, #16
89 pop {lr}
90 mov pc, lr
91FUNCTION_END(__aeabi_uldivmod)
Note: See TracBrowser for help on using the repository browser.