@@ -23,64 +23,72 @@ intrinsics! {
2323 #[ naked]
2424 #[ cfg( not( target_env = "msvc" ) ) ]
2525 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+ }
3537 }
3638
3739 #[ naked]
3840 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+ }
5054 }
5155
5256 #[ naked]
5357 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+ }
6268 }
6369
6470 #[ naked]
6571 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+ }
7785 }
7886
7987 // FIXME: The `*4` and `*8` variants should be defined as aliases.
8088
8189 #[ cfg( not( target_vendor = "apple" ) ) ]
8290 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) } ;
8492 }
8593
8694 #[ cfg( not( target_vendor = "apple" ) ) ]
@@ -97,33 +105,33 @@ intrinsics! {
97105 n -= 4 ;
98106 }
99107
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) } ;
101109 }
102110
103111 #[ cfg( not( target_vendor = "apple" ) ) ]
104112 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) } ;
106114 }
107115
108116 #[ cfg( not( target_vendor = "apple" ) ) ]
109117 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) } ;
111119 }
112120
113121 #[ cfg( not( any( target_vendor = "apple" , target_env = "msvc" ) ) ) ]
114122 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) } ;
116124 }
117125
118126 #[ cfg( not( any( target_vendor = "apple" , target_env = "msvc" ) ) ) ]
119127 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) } ;
121129 }
122130
123131 #[ cfg( not( target_vendor = "apple" ) ) ]
124132 pub unsafe extern "aapcs" fn __aeabi_memset( dest: * mut u8 , n: usize , c: i32 ) {
125133 // Note the different argument order
126- crate :: mem:: memset( dest, c, n) ;
134+ unsafe { crate :: mem:: memset( dest, c, n) } ;
127135 }
128136
129137 #[ cfg( not( target_vendor = "apple" ) ) ]
@@ -140,26 +148,26 @@ intrinsics! {
140148 n -= 4 ;
141149 }
142150
143- __aeabi_memset( dest as * mut u8 , n, byte as i32 ) ;
151+ unsafe { __aeabi_memset( dest as * mut u8 , n, byte as i32 ) } ;
144152 }
145153
146154 #[ cfg( not( target_vendor = "apple" ) ) ]
147155 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) } ;
149157 }
150158
151159 #[ cfg( not( target_vendor = "apple" ) ) ]
152160 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 ) } ;
154162 }
155163
156164 #[ cfg( not( any( target_vendor = "apple" , target_env = "msvc" ) ) ) ]
157165 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 ) } ;
159167 }
160168
161169 #[ cfg( not( any( target_vendor = "apple" , target_env = "msvc" ) ) ) ]
162170 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 ) } ;
164172 }
165173}
0 commit comments