@@ -9,135 +9,135 @@ use core::intrinsics;
9
9
#[ cfg( not( any( target_os = "ios" , target_env = "msvc" ) ) ) ]
10
10
#[ naked]
11
11
#[ 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
+ ) ;
23
23
}
24
24
25
25
#[ cfg( target_os = "ios" ) ]
26
26
#[ naked]
27
27
#[ 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
+ ) ;
39
39
}
40
40
41
41
#[ cfg( not( target_os = "ios" ) ) ]
42
42
#[ naked]
43
43
#[ 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
+ ) ;
57
57
}
58
58
59
59
#[ cfg( target_os = "ios" ) ]
60
60
#[ naked]
61
61
#[ 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
+ ) ;
75
75
}
76
76
77
77
#[ cfg( not( target_os = "ios" ) ) ]
78
78
#[ naked]
79
79
#[ 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
+ ) ;
90
90
}
91
91
92
92
#[ cfg( target_os = "ios" ) ]
93
93
#[ naked]
94
94
#[ 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
+ ) ;
105
105
}
106
106
107
107
#[ cfg( not( target_os = "ios" ) ) ]
108
108
#[ naked]
109
109
#[ 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
+ ) ;
123
123
}
124
124
125
125
#[ cfg( target_os = "ios" ) ]
126
126
#[ naked]
127
127
#[ 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
+ ) ;
141
141
}
142
142
143
143
// The following functions use weak linkage to allow users to override
0 commit comments