File tree Expand file tree Collapse file tree 4 files changed +9
-13
lines changed Expand file tree Collapse file tree 4 files changed +9
-13
lines changed Original file line number Diff line number Diff line change @@ -289,27 +289,16 @@ mod c {
289289 "arm/clzdi2.S" ,
290290 "arm/clzsi2.S" ,
291291 "arm/divmodsi4.S" ,
292+ "arm/divsi3.S" ,
292293 "arm/modsi3.S" ,
293294 "arm/switch16.S" ,
294295 "arm/switch32.S" ,
295296 "arm/switch8.S" ,
296297 "arm/switchu8.S" ,
297298 "arm/sync_synchronize.S" ,
298299 "arm/udivmodsi4.S" ,
300+ "arm/udivsi3.S" ,
299301 "arm/umodsi3.S" ,
300-
301- // Exclude these two files for now even though we haven't
302- // translated their implementation into Rust yet (#173).
303- // They appear... buggy? The `udivsi3` implementation was
304- // the one that seemed buggy, but the `divsi3` file
305- // references a symbol from `udivsi3` so we compile them
306- // both with the Rust versions.
307- //
308- // Note that if these are added back they should be removed
309- // from thumbv6m below.
310- //
311- // "arm/divsi3.S",
312- // "arm/udivsi3.S",
313302 ] ,
314303 ) ;
315304
@@ -427,12 +416,14 @@ mod c {
427416 "clzdi2" ,
428417 "clzsi2" ,
429418 "divmodsi4" ,
419+ "divsi3" ,
430420 "modsi3" ,
431421 "switch16" ,
432422 "switch32" ,
433423 "switch8" ,
434424 "switchu8" ,
435425 "udivmodsi4" ,
426+ "udivsi3" ,
436427 "umodsi3" ,
437428 ] ,
438429 ) ;
Original file line number Diff line number Diff line change @@ -24,6 +24,7 @@ run() {
2424 -v ` pwd` :/checkout:ro \
2525 -v ` rustc --print sysroot` :/rust:ro \
2626 -w /checkout \
27+ --init \
2728 $target \
2829 sh -c " HOME=/tmp PATH=\$ PATH:/rust/bin ci/run.sh $target "
2930}
Original file line number Diff line number Diff line change @@ -57,6 +57,7 @@ impl Divmod for i32 {}
5757impl Divmod for i64 { }
5858
5959intrinsics ! {
60+ #[ use_c_shim_if( all( target_arch = "arm" , not( target_os = "ios" ) , not( thumbv6m) ) ) ]
6061 #[ arm_aeabi_alias = __aeabi_idiv]
6162 pub extern "C" fn __divsi3( a: i32 , b: i32 ) -> i32 {
6263 a. div( b)
Original file line number Diff line number Diff line change @@ -152,6 +152,9 @@ macro_rules! udivmod_inner {
152152}
153153
154154intrinsics ! {
155+ #[ use_c_shim_if( all( target_arch = "arm" ,
156+ not( target_os = "ios" ) ,
157+ not( thumbv6m) ) ) ]
155158 #[ arm_aeabi_alias = __aeabi_uidiv]
156159 /// Returns `n / d`
157160 pub extern "C" fn __udivsi3( n: u32 , d: u32 ) -> u32 {
You can’t perform that action at this time.
0 commit comments