@@ -23,64 +23,72 @@ intrinsics! {
23
23
#[ naked]
24
24
#[ cfg( not( target_env = "msvc" ) ) ]
25
25
pub unsafe extern "C" fn __aeabi_uidivmod( ) {
26
- core:: arch:: naked_asm!(
27
- "push {{lr}}" ,
28
- "sub sp, sp, #4" ,
29
- "mov r2, sp" ,
30
- bl!( "__udivmodsi4" ) ,
31
- "ldr r1, [sp]" ,
32
- "add sp, sp, #4" ,
33
- "pop {{pc}}" ,
34
- ) ;
26
+ unsafe {
27
+ core:: arch:: naked_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
+ ) ;
36
+ }
35
37
}
36
38
37
39
#[ naked]
38
40
pub unsafe extern "C" fn __aeabi_uldivmod( ) {
39
- core:: arch:: naked_asm!(
40
- "push {{r4, lr}}" ,
41
- "sub sp, sp, #16" ,
42
- "add r4, sp, #8" ,
43
- "str r4, [sp]" ,
44
- bl!( "__udivmoddi4" ) ,
45
- "ldr r2, [sp, #8]" ,
46
- "ldr r3, [sp, #12]" ,
47
- "add sp, sp, #16" ,
48
- "pop {{r4, pc}}" ,
49
- ) ;
41
+ unsafe {
42
+ core:: arch:: naked_asm!(
43
+ "push {{r4, lr}}" ,
44
+ "sub sp, sp, #16" ,
45
+ "add r4, sp, #8" ,
46
+ "str r4, [sp]" ,
47
+ bl!( "__udivmoddi4" ) ,
48
+ "ldr r2, [sp, #8]" ,
49
+ "ldr r3, [sp, #12]" ,
50
+ "add sp, sp, #16" ,
51
+ "pop {{r4, pc}}" ,
52
+ ) ;
53
+ }
50
54
}
51
55
52
56
#[ naked]
53
57
pub unsafe extern "C" fn __aeabi_idivmod( ) {
54
- core:: arch:: naked_asm!(
55
- "push {{r0, r1, r4, lr}}" ,
56
- bl!( "__aeabi_idiv" ) ,
57
- "pop {{r1, r2}}" ,
58
- "muls r2, r2, r0" ,
59
- "subs r1, r1, r2" ,
60
- "pop {{r4, pc}}" ,
61
- ) ;
58
+ unsafe {
59
+ core:: arch:: naked_asm!(
60
+ "push {{r0, r1, r4, lr}}" ,
61
+ bl!( "__aeabi_idiv" ) ,
62
+ "pop {{r1, r2}}" ,
63
+ "muls r2, r2, r0" ,
64
+ "subs r1, r1, r2" ,
65
+ "pop {{r4, pc}}" ,
66
+ ) ;
67
+ }
62
68
}
63
69
64
70
#[ naked]
65
71
pub unsafe extern "C" fn __aeabi_ldivmod( ) {
66
- core:: arch:: naked_asm!(
67
- "push {{r4, lr}}" ,
68
- "sub sp, sp, #16" ,
69
- "add r4, sp, #8" ,
70
- "str r4, [sp]" ,
71
- bl!( "__divmoddi4" ) ,
72
- "ldr r2, [sp, #8]" ,
73
- "ldr r3, [sp, #12]" ,
74
- "add sp, sp, #16" ,
75
- "pop {{r4, pc}}" ,
76
- ) ;
72
+ unsafe {
73
+ core:: arch:: naked_asm!(
74
+ "push {{r4, lr}}" ,
75
+ "sub sp, sp, #16" ,
76
+ "add r4, sp, #8" ,
77
+ "str r4, [sp]" ,
78
+ bl!( "__divmoddi4" ) ,
79
+ "ldr r2, [sp, #8]" ,
80
+ "ldr r3, [sp, #12]" ,
81
+ "add sp, sp, #16" ,
82
+ "pop {{r4, pc}}" ,
83
+ ) ;
84
+ }
77
85
}
78
86
79
87
// FIXME: The `*4` and `*8` variants should be defined as aliases.
80
88
81
89
#[ cfg( not( target_vendor = "apple" ) ) ]
82
90
pub unsafe extern "aapcs" fn __aeabi_memcpy( dest: * mut u8 , src: * const u8 , n: usize ) {
83
- crate :: mem:: memcpy( dest, src, n) ;
91
+ unsafe { crate :: mem:: memcpy( dest, src, n) } ;
84
92
}
85
93
86
94
#[ cfg( not( target_vendor = "apple" ) ) ]
@@ -97,33 +105,33 @@ intrinsics! {
97
105
n -= 4 ;
98
106
}
99
107
100
- __aeabi_memcpy( dest as * mut u8 , src as * const u8 , n) ;
108
+ unsafe { __aeabi_memcpy( dest as * mut u8 , src as * const u8 , n) } ;
101
109
}
102
110
103
111
#[ cfg( not( target_vendor = "apple" ) ) ]
104
112
pub unsafe extern "aapcs" fn __aeabi_memcpy8( dest: * mut u8 , src: * const u8 , n: usize ) {
105
- __aeabi_memcpy4( dest, src, n) ;
113
+ unsafe { __aeabi_memcpy4( dest, src, n) } ;
106
114
}
107
115
108
116
#[ cfg( not( target_vendor = "apple" ) ) ]
109
117
pub unsafe extern "aapcs" fn __aeabi_memmove( dest: * mut u8 , src: * const u8 , n: usize ) {
110
- crate :: mem:: memmove( dest, src, n) ;
118
+ unsafe { crate :: mem:: memmove( dest, src, n) } ;
111
119
}
112
120
113
121
#[ cfg( not( any( target_vendor = "apple" , target_env = "msvc" ) ) ) ]
114
122
pub unsafe extern "aapcs" fn __aeabi_memmove4( dest: * mut u8 , src: * const u8 , n: usize ) {
115
- __aeabi_memmove( dest, src, n) ;
123
+ unsafe { __aeabi_memmove( dest, src, n) } ;
116
124
}
117
125
118
126
#[ cfg( not( any( target_vendor = "apple" , target_env = "msvc" ) ) ) ]
119
127
pub unsafe extern "aapcs" fn __aeabi_memmove8( dest: * mut u8 , src: * const u8 , n: usize ) {
120
- __aeabi_memmove( dest, src, n) ;
128
+ unsafe { __aeabi_memmove( dest, src, n) } ;
121
129
}
122
130
123
131
#[ cfg( not( target_vendor = "apple" ) ) ]
124
132
pub unsafe extern "aapcs" fn __aeabi_memset( dest: * mut u8 , n: usize , c: i32 ) {
125
133
// Note the different argument order
126
- crate :: mem:: memset( dest, c, n) ;
134
+ unsafe { crate :: mem:: memset( dest, c, n) } ;
127
135
}
128
136
129
137
#[ cfg( not( target_vendor = "apple" ) ) ]
@@ -140,26 +148,26 @@ intrinsics! {
140
148
n -= 4 ;
141
149
}
142
150
143
- __aeabi_memset( dest as * mut u8 , n, byte as i32 ) ;
151
+ unsafe { __aeabi_memset( dest as * mut u8 , n, byte as i32 ) } ;
144
152
}
145
153
146
154
#[ cfg( not( target_vendor = "apple" ) ) ]
147
155
pub unsafe extern "aapcs" fn __aeabi_memset8( dest: * mut u8 , n: usize , c: i32 ) {
148
- __aeabi_memset4( dest, n, c) ;
156
+ unsafe { __aeabi_memset4( dest, n, c) } ;
149
157
}
150
158
151
159
#[ cfg( not( target_vendor = "apple" ) ) ]
152
160
pub unsafe extern "aapcs" fn __aeabi_memclr( dest: * mut u8 , n: usize ) {
153
- __aeabi_memset( dest, n, 0 ) ;
161
+ unsafe { __aeabi_memset( dest, n, 0 ) } ;
154
162
}
155
163
156
164
#[ cfg( not( any( target_vendor = "apple" , target_env = "msvc" ) ) ) ]
157
165
pub unsafe extern "aapcs" fn __aeabi_memclr4( dest: * mut u8 , n: usize ) {
158
- __aeabi_memset4( dest, n, 0 ) ;
166
+ unsafe { __aeabi_memset4( dest, n, 0 ) } ;
159
167
}
160
168
161
169
#[ cfg( not( any( target_vendor = "apple" , target_env = "msvc" ) ) ) ]
162
170
pub unsafe extern "aapcs" fn __aeabi_memclr8( dest: * mut u8 , n: usize ) {
163
- __aeabi_memset4( dest, n, 0 ) ;
171
+ unsafe { __aeabi_memset4( dest, n, 0 ) } ;
164
172
}
165
173
}
0 commit comments