@@ -9,135 +9,135 @@ use core::intrinsics;
99#[ cfg( not( any( target_os = "ios" , target_env = "msvc" ) ) ) ]
1010#[ naked]
1111#[ cfg_attr( not( feature = "mangled-names" ) , no_mangle) ]
12- pub unsafe fn __aeabi_uidivmod ( ) {
13- llvm_asm ! ( "
14- push {lr}
15- sub sp, sp, #4
16- mov r2, sp
17- bl __udivmodsi4
18- ldr r1, [sp]
19- add sp, sp, #4
20- pop {pc}
21- " :: : "memory" : "volatile" ) ;
22- intrinsics :: unreachable ( ) ;
12+ pub unsafe extern "C" fn __aeabi_uidivmod ( ) {
13+ asm ! (
14+ " push {{ lr}}" ,
15+ " sub sp, sp, #4" ,
16+ " mov r2, sp" ,
17+ " bl __udivmodsi4" ,
18+ " ldr r1, [sp]" ,
19+ " add sp, sp, #4" ,
20+ " pop {{ pc}}" ,
21+ options ( noreturn )
22+ ) ;
2323}
2424
2525#[ cfg( target_os = "ios" ) ]
2626#[ naked]
2727#[ cfg_attr( not( feature = "mangled-names" ) , no_mangle) ]
28- pub unsafe fn __aeabi_uidivmod ( ) {
29- llvm_asm ! ( "
30- push {lr}
31- sub sp, sp, #4
32- mov r2, sp
33- bl ___udivmodsi4
34- ldr r1, [sp]
35- add sp, sp, #4
36- pop {pc}
37- " :: : "memory" : "volatile" ) ;
38- intrinsics :: unreachable ( ) ;
28+ pub unsafe extern "C" fn __aeabi_uidivmod ( ) {
29+ asm ! (
30+ " push {{ lr}}" ,
31+ " sub sp, sp, #4" ,
32+ " mov r2, sp" ,
33+ " bl ___udivmodsi4" ,
34+ " ldr r1, [sp]" ,
35+ " add sp, sp, #4" ,
36+ " pop {{ pc}}" ,
37+ options ( noreturn )
38+ ) ;
3939}
4040
4141#[ cfg( not( target_os = "ios" ) ) ]
4242#[ naked]
4343#[ cfg_attr( not( feature = "mangled-names" ) , no_mangle) ]
44- pub unsafe fn __aeabi_uldivmod ( ) {
45- llvm_asm ! ( "
46- push {r4, lr}
47- sub sp, sp, #16
48- add r4, sp, #8
49- str r4, [sp]
50- bl __udivmoddi4
51- ldr r2, [sp, #8]
52- ldr r3, [sp, #12]
53- add sp, sp, #16
54- pop {r4, pc}
55- " :: : "memory" : "volatile" ) ;
56- intrinsics :: unreachable ( ) ;
44+ pub unsafe extern "C" fn __aeabi_uldivmod ( ) {
45+ asm ! (
46+ " push {{ r4, lr}}" ,
47+ " sub sp, sp, #16" ,
48+ " add r4, sp, #8" ,
49+ " str r4, [sp]" ,
50+ " bl __udivmoddi4" ,
51+ " ldr r2, [sp, #8]" ,
52+ " ldr r3, [sp, #12]" ,
53+ " add sp, sp, #16" ,
54+ " pop {{ r4, pc}}" ,
55+ options ( noreturn )
56+ ) ;
5757}
5858
5959#[ cfg( target_os = "ios" ) ]
6060#[ naked]
6161#[ cfg_attr( not( feature = "mangled-names" ) , no_mangle) ]
62- pub unsafe fn __aeabi_uldivmod ( ) {
63- llvm_asm ! ( "
64- push {r4, lr}
65- sub sp, sp, #16
66- add r4, sp, #8
67- str r4, [sp]
68- bl ___udivmoddi4
69- ldr r2, [sp, #8]
70- ldr r3, [sp, #12]
71- add sp, sp, #16
72- pop {r4, pc}
73- " :: : "memory" : "volatile" ) ;
74- intrinsics :: unreachable ( ) ;
62+ pub unsafe extern "C" fn __aeabi_uldivmod ( ) {
63+ asm ! (
64+ " push {{ r4, lr}}" ,
65+ " sub sp, sp, #16" ,
66+ " add r4, sp, #8" ,
67+ " str r4, [sp]" ,
68+ " bl ___udivmoddi4" ,
69+ " ldr r2, [sp, #8]" ,
70+ " ldr r3, [sp, #12]" ,
71+ " add sp, sp, #16" ,
72+ " pop {{ r4, pc}}" ,
73+ options ( noreturn )
74+ ) ;
7575}
7676
7777#[ cfg( not( target_os = "ios" ) ) ]
7878#[ naked]
7979#[ cfg_attr( not( feature = "mangled-names" ) , no_mangle) ]
80- pub unsafe fn __aeabi_idivmod ( ) {
81- llvm_asm ! ( "
82- push {r0, r1, r4, lr}
83- bl __aeabi_idiv
84- pop {r1, r2}
85- muls r2, r2, r0
86- subs r1, r1, r2
87- pop {r4, pc}
88- " :: : "memory" : "volatile" ) ;
89- intrinsics :: unreachable ( ) ;
80+ pub unsafe extern "C" fn __aeabi_idivmod ( ) {
81+ asm ! (
82+ " push {{ r0, r1, r4, lr}}" ,
83+ " bl __aeabi_idiv" ,
84+ " pop {{ r1, r2}}" ,
85+ " muls r2, r2, r0" ,
86+ " subs r1, r1, r2" ,
87+ " pop {{ r4, pc}}" ,
88+ options ( noreturn )
89+ ) ;
9090}
9191
9292#[ cfg( target_os = "ios" ) ]
9393#[ naked]
9494#[ cfg_attr( not( feature = "mangled-names" ) , no_mangle) ]
95- pub unsafe fn __aeabi_idivmod ( ) {
96- llvm_asm ! ( "
97- push {r0, r1, r4, lr}
98- bl ___aeabi_idiv
99- pop {r1, r2}
100- muls r2, r2, r0
101- subs r1, r1, r2
102- pop {r4, pc}
103- " :: : "memory" : "volatile" ) ;
104- intrinsics :: unreachable ( ) ;
95+ pub unsafe extern "C" fn __aeabi_idivmod ( ) {
96+ asm ! (
97+ " push {{ r0, r1, r4, lr}}" ,
98+ " bl ___aeabi_idiv" ,
99+ " pop {{ r1, r2}}" ,
100+ " muls r2, r2, r0" ,
101+ " subs r1, r1, r2" ,
102+ " pop {{ r4, pc}}" ,
103+ options ( noreturn )
104+ ) ;
105105}
106106
107107#[ cfg( not( target_os = "ios" ) ) ]
108108#[ naked]
109109#[ cfg_attr( not( feature = "mangled-names" ) , no_mangle) ]
110- pub unsafe fn __aeabi_ldivmod ( ) {
111- llvm_asm ! ( "
112- push {r4, lr}
113- sub sp, sp, #16
114- add r4, sp, #8
115- str r4, [sp]
116- bl __divmoddi4
117- ldr r2, [sp, #8]
118- ldr r3, [sp, #12]
119- add sp, sp, #16
120- pop {r4, pc}
121- " :: : "memory" : "volatile" ) ;
122- intrinsics :: unreachable ( ) ;
110+ pub unsafe extern "C" fn __aeabi_ldivmod ( ) {
111+ asm ! (
112+ " push {{ r4, lr}}" ,
113+ " sub sp, sp, #16" ,
114+ " add r4, sp, #8" ,
115+ " str r4, [sp]" ,
116+ " bl __divmoddi4" ,
117+ " ldr r2, [sp, #8]" ,
118+ " ldr r3, [sp, #12]" ,
119+ " add sp, sp, #16" ,
120+ " pop {{ r4, pc}}" ,
121+ options ( noreturn )
122+ ) ;
123123}
124124
125125#[ cfg( target_os = "ios" ) ]
126126#[ naked]
127127#[ cfg_attr( not( feature = "mangled-names" ) , no_mangle) ]
128- pub unsafe fn __aeabi_ldivmod ( ) {
129- llvm_asm ! ( "
130- push {r4, lr}
131- sub sp, sp, #16
132- add r4, sp, #8
133- str r4, [sp]
134- bl ___divmoddi4
135- ldr r2, [sp, #8]
136- ldr r3, [sp, #12]
137- add sp, sp, #16
138- pop {r4, pc}
139- " :: : "memory" : "volatile" ) ;
140- intrinsics :: unreachable ( ) ;
128+ pub unsafe extern "C" fn __aeabi_ldivmod ( ) {
129+ asm ! (
130+ " push {{ r4, lr}}" ,
131+ " sub sp, sp, #16" ,
132+ " add r4, sp, #8" ,
133+ " str r4, [sp]" ,
134+ " bl ___divmoddi4" ,
135+ " ldr r2, [sp, #8]" ,
136+ " ldr r3, [sp, #12]" ,
137+ " add sp, sp, #16" ,
138+ " pop {{ r4, pc}}" ,
139+ options ( noreturn )
140+ ) ;
141141}
142142
143143// The following functions use weak linkage to allow users to override
0 commit comments