@@ -233,6 +233,77 @@ fn main() {
233233 Some ( c)
234234 } ,
235235 "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)" ) ;
236307 }
237308
238309 // float/extend.rs
@@ -243,6 +314,15 @@ fn main() {
243314 Some ( f64 ( a. 0 ) )
244315 } ,
245316 "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+ }
246326
247327 // float/conv.rs
248328 gen ( |a : MyF64 | i64 ( a. 0 ) . ok ( ) ,
0 commit comments