@@ -8,117 +8,133 @@ use core::intrinsics;
8
8
#[ naked]
9
9
#[ cfg_attr( not( feature = "mangled-names" ) , no_mangle) ]
10
10
pub unsafe fn __aeabi_uidivmod ( ) {
11
- asm ! ( "push {lr}
12
- sub sp, sp, #4
13
- mov r2, sp
14
- bl __udivmodsi4
15
- ldr r1, [sp]
16
- add sp, sp, #4
17
- pop {pc}" :: : "memory" : "volatile" ) ;
11
+ llvm_asm ! ( "
12
+ push {lr}
13
+ sub sp, sp, #4
14
+ mov r2, sp
15
+ bl __udivmodsi4
16
+ ldr r1, [sp]
17
+ add sp, sp, #4
18
+ pop {pc}
19
+ " :: : "memory" : "volatile" ) ;
18
20
intrinsics:: unreachable ( ) ;
19
21
}
20
22
21
23
#[ cfg( target_os = "ios" ) ]
22
24
#[ naked]
23
25
#[ cfg_attr( not( feature = "mangled-names" ) , no_mangle) ]
24
26
pub unsafe fn __aeabi_uidivmod ( ) {
25
- asm ! ( "push {lr}
26
- sub sp, sp, #4
27
- mov r2, sp
28
- bl ___udivmodsi4
29
- ldr r1, [sp]
30
- add sp, sp, #4
31
- pop {pc}" :: : "memory" : "volatile" ) ;
27
+ llvm_asm ! ( "
28
+ push {lr}
29
+ sub sp, sp, #4
30
+ mov r2, sp
31
+ bl ___udivmodsi4
32
+ ldr r1, [sp]
33
+ add sp, sp, #4
34
+ pop {pc}
35
+ " :: : "memory" : "volatile" ) ;
32
36
intrinsics:: unreachable ( ) ;
33
37
}
34
38
35
39
#[ cfg( not( target_os = "ios" ) ) ]
36
40
#[ naked]
37
41
#[ cfg_attr( not( feature = "mangled-names" ) , no_mangle) ]
38
42
pub unsafe fn __aeabi_uldivmod ( ) {
39
- asm ! ( "push {r4, lr}
40
- sub sp, sp, #16
41
- add r4, sp, #8
42
- str r4, [sp]
43
- bl __udivmoddi4
44
- ldr r2, [sp, #8]
45
- ldr r3, [sp, #12]
46
- add sp, sp, #16
47
- pop {r4, pc}" :: : "memory" : "volatile" ) ;
43
+ llvm_asm ! ( "
44
+ push {r4, lr}
45
+ sub sp, sp, #16
46
+ add r4, sp, #8
47
+ str r4, [sp]
48
+ bl __udivmoddi4
49
+ ldr r2, [sp, #8]
50
+ ldr r3, [sp, #12]
51
+ add sp, sp, #16
52
+ pop {r4, pc}
53
+ " :: : "memory" : "volatile" ) ;
48
54
intrinsics:: unreachable ( ) ;
49
55
}
50
56
51
57
#[ cfg( target_os = "ios" ) ]
52
58
#[ naked]
53
59
#[ cfg_attr( not( feature = "mangled-names" ) , no_mangle) ]
54
60
pub unsafe fn __aeabi_uldivmod ( ) {
55
- asm ! ( "push {r4, lr}
56
- sub sp, sp, #16
57
- add r4, sp, #8
58
- str r4, [sp]
59
- bl ___udivmoddi4
60
- ldr r2, [sp, #8]
61
- ldr r3, [sp, #12]
62
- add sp, sp, #16
63
- pop {r4, pc}" :: : "memory" : "volatile" ) ;
61
+ llvm_asm ! ( "
62
+ push {r4, lr}
63
+ sub sp, sp, #16
64
+ add r4, sp, #8
65
+ str r4, [sp]
66
+ bl ___udivmoddi4
67
+ ldr r2, [sp, #8]
68
+ ldr r3, [sp, #12]
69
+ add sp, sp, #16
70
+ pop {r4, pc}
71
+ " :: : "memory" : "volatile" ) ;
64
72
intrinsics:: unreachable ( ) ;
65
73
}
66
74
67
75
#[ cfg( not( target_os = "ios" ) ) ]
68
76
#[ naked]
69
77
#[ cfg_attr( not( feature = "mangled-names" ) , no_mangle) ]
70
78
pub unsafe fn __aeabi_idivmod ( ) {
71
- asm ! ( "push {r0, r1, r4, lr}
72
- bl __aeabi_idiv
73
- pop {r1, r2}
74
- muls r2, r2, r0
75
- subs r1, r1, r2
76
- pop {r4, pc}" :: : "memory" : "volatile" ) ;
79
+ llvm_asm ! ( "
80
+ push {r0, r1, r4, lr}
81
+ bl __aeabi_idiv
82
+ pop {r1, r2}
83
+ muls r2, r2, r0
84
+ subs r1, r1, r2
85
+ pop {r4, pc}
86
+ " :: : "memory" : "volatile" ) ;
77
87
intrinsics:: unreachable ( ) ;
78
88
}
79
89
80
90
#[ cfg( target_os = "ios" ) ]
81
91
#[ naked]
82
92
#[ cfg_attr( not( feature = "mangled-names" ) , no_mangle) ]
83
93
pub unsafe fn __aeabi_idivmod ( ) {
84
- asm ! ( "push {r0, r1, r4, lr}
85
- bl ___aeabi_idiv
86
- pop {r1, r2}
87
- muls r2, r2, r0
88
- subs r1, r1, r2
89
- pop {r4, pc}" :: : "memory" : "volatile" ) ;
94
+ llvm_asm ! ( "
95
+ push {r0, r1, r4, lr}
96
+ bl ___aeabi_idiv
97
+ pop {r1, r2}
98
+ muls r2, r2, r0
99
+ subs r1, r1, r2
100
+ pop {r4, pc}
101
+ " :: : "memory" : "volatile" ) ;
90
102
intrinsics:: unreachable ( ) ;
91
103
}
92
104
93
105
#[ cfg( not( target_os = "ios" ) ) ]
94
106
#[ naked]
95
107
#[ cfg_attr( not( feature = "mangled-names" ) , no_mangle) ]
96
108
pub unsafe fn __aeabi_ldivmod ( ) {
97
- asm ! ( "push {r4, lr}
98
- sub sp, sp, #16
99
- add r4, sp, #8
100
- str r4, [sp]
101
- bl __divmoddi4
102
- ldr r2, [sp, #8]
103
- ldr r3, [sp, #12]
104
- add sp, sp, #16
105
- pop {r4, pc}" :: : "memory" : "volatile" ) ;
109
+ llvm_asm ! ( "
110
+ push {r4, lr}
111
+ sub sp, sp, #16
112
+ add r4, sp, #8
113
+ str r4, [sp]
114
+ bl __divmoddi4
115
+ ldr r2, [sp, #8]
116
+ ldr r3, [sp, #12]
117
+ add sp, sp, #16
118
+ pop {r4, pc}
119
+ " :: : "memory" : "volatile" ) ;
106
120
intrinsics:: unreachable ( ) ;
107
121
}
108
122
109
123
#[ cfg( target_os = "ios" ) ]
110
124
#[ naked]
111
125
#[ cfg_attr( not( feature = "mangled-names" ) , no_mangle) ]
112
126
pub unsafe fn __aeabi_ldivmod ( ) {
113
- asm ! ( "push {r4, lr}
114
- sub sp, sp, #16
115
- add r4, sp, #8
116
- str r4, [sp]
117
- bl ___divmoddi4
118
- ldr r2, [sp, #8]
119
- ldr r3, [sp, #12]
120
- add sp, sp, #16
121
- pop {r4, pc}" :: : "memory" : "volatile" ) ;
127
+ llvm_asm ! ( "
128
+ push {r4, lr}
129
+ sub sp, sp, #16
130
+ add r4, sp, #8
131
+ str r4, [sp]
132
+ bl ___divmoddi4
133
+ ldr r2, [sp, #8]
134
+ ldr r3, [sp, #12]
135
+ add sp, sp, #16
136
+ pop {r4, pc}
137
+ " :: : "memory" : "volatile" ) ;
122
138
intrinsics:: unreachable ( ) ;
123
139
}
124
140
0 commit comments