@@ -233,6 +233,77 @@ fn main() {
233
233
Some ( c)
234
234
} ,
235
235
"compiler_builtins::float::cmp::__aeabi_dcmpgt(a, b)" ) ;
236
+
237
+ gen ( |( a, b) : ( LargeF32 , LargeF32 ) | {
238
+ if a. 0 . is_nan ( ) || b. 0 . is_nan ( ) {
239
+ return None ;
240
+ }
241
+ Some ( ( a. 0 >= b. 0 ) as i32 )
242
+ } ,
243
+ "compiler_builtins::float::cmp::__gesf2vfp(a, b)" ) ;
244
+ gen ( |( a, b) : ( MyF64 , MyF64 ) | {
245
+ if a. 0 . is_nan ( ) || b. 0 . is_nan ( ) {
246
+ return None ;
247
+ }
248
+ Some ( ( a. 0 >= b. 0 ) as i32 )
249
+ } ,
250
+ "compiler_builtins::float::cmp::__gedf2vfp(a, b)" ) ;
251
+ gen ( |( a, b) : ( LargeF32 , LargeF32 ) | {
252
+ if a. 0 . is_nan ( ) || b. 0 . is_nan ( ) {
253
+ return None ;
254
+ }
255
+ Some ( ( a. 0 > b. 0 ) as i32 )
256
+ } ,
257
+ "compiler_builtins::float::cmp::__gtsf2vfp(a, b)" ) ;
258
+ gen ( |( a, b) : ( MyF64 , MyF64 ) | {
259
+ if a. 0 . is_nan ( ) || b. 0 . is_nan ( ) {
260
+ return None ;
261
+ }
262
+ Some ( ( a. 0 > b. 0 ) as i32 )
263
+ } ,
264
+ "compiler_builtins::float::cmp::__gtdf2vfp(a, b)" ) ;
265
+ gen ( |( a, b) : ( LargeF32 , LargeF32 ) | {
266
+ if a. 0 . is_nan ( ) || b. 0 . is_nan ( ) {
267
+ return None ;
268
+ }
269
+ Some ( ( a. 0 < b. 0 ) as i32 )
270
+ } ,
271
+ "compiler_builtins::float::cmp::__ltsf2vfp(a, b)" ) ;
272
+ gen ( |( a, b) : ( MyF64 , MyF64 ) | {
273
+ if a. 0 . is_nan ( ) || b. 0 . is_nan ( ) {
274
+ return None ;
275
+ }
276
+ Some ( ( a. 0 < b. 0 ) as i32 )
277
+ } ,
278
+ "compiler_builtins::float::cmp::__ltdf2vfp(a, b)" ) ;
279
+ gen ( |( a, b) : ( LargeF32 , LargeF32 ) | {
280
+ if a. 0 . is_nan ( ) || b. 0 . is_nan ( ) {
281
+ return None ;
282
+ }
283
+ Some ( ( a. 0 != b. 0 ) as i32 )
284
+ } ,
285
+ "compiler_builtins::float::cmp::__nesf2vfp(a, b)" ) ;
286
+ gen ( |( a, b) : ( MyF64 , MyF64 ) | {
287
+ if a. 0 . is_nan ( ) || b. 0 . is_nan ( ) {
288
+ return None ;
289
+ }
290
+ Some ( ( a. 0 != b. 0 ) as i32 )
291
+ } ,
292
+ "compiler_builtins::float::cmp::__nedf2vfp(a, b)" ) ;
293
+ gen ( |( a, b) : ( LargeF32 , LargeF32 ) | {
294
+ if a. 0 . is_nan ( ) || b. 0 . is_nan ( ) {
295
+ return None ;
296
+ }
297
+ Some ( ( a. 0 == b. 0 ) as i32 )
298
+ } ,
299
+ "compiler_builtins::float::cmp::__eqsf2vfp(a, b)" ) ;
300
+ gen ( |( a, b) : ( MyF64 , MyF64 ) | {
301
+ if a. 0 . is_nan ( ) || b. 0 . is_nan ( ) {
302
+ return None ;
303
+ }
304
+ Some ( ( a. 0 == b. 0 ) as i32 )
305
+ } ,
306
+ "compiler_builtins::float::cmp::__eqdf2vfp(a, b)" ) ;
236
307
}
237
308
238
309
// float/extend.rs
@@ -243,6 +314,15 @@ fn main() {
243
314
Some ( f64 ( a. 0 ) )
244
315
} ,
245
316
"compiler_builtins::float::extend::__extendsfdf2(a)" ) ;
317
+ if target_arch_arm {
318
+ gen ( |a : LargeF32 | {
319
+ if a. 0 . is_nan ( ) {
320
+ return None ;
321
+ }
322
+ Some ( f64 ( a. 0 ) )
323
+ } ,
324
+ "compiler_builtins::float::extend::__extendsfdf2vfp(a)" ) ;
325
+ }
246
326
247
327
// float/conv.rs
248
328
gen ( |a : MyF64 | i64 ( a. 0 ) . ok ( ) ,
0 commit comments