@@ -51,6 +51,28 @@ fn main() {
51
51
} ,
52
52
"compiler_builtins::float::add::__addsf3(a, b)" ) ;
53
53
54
+ if target_arch_arm {
55
+ gen ( |( a, b) : ( MyF64 , MyF64 ) | {
56
+ let c = a. 0 + b. 0 ;
57
+ if a. 0 . is_nan ( ) || b. 0 . is_nan ( ) || c. is_nan ( ) {
58
+ None
59
+ } else {
60
+ Some ( c)
61
+ }
62
+ } ,
63
+ "compiler_builtins::float::add::__adddf3vfp(a, b)" ) ;
64
+ gen ( |( a, b) : ( LargeF32 , LargeF32 ) | {
65
+ let c = a. 0 + b. 0 ;
66
+ if a. 0 . is_nan ( ) || b. 0 . is_nan ( ) || c. is_nan ( ) {
67
+ None
68
+ } else {
69
+ Some ( c)
70
+ }
71
+ } ,
72
+ "compiler_builtins::float::add::__addsf3vfp(a, b)" ) ;
73
+ }
74
+
75
+
54
76
// float/cmp.rs
55
77
gen ( |( a, b) : ( MyF64 , MyF64 ) | {
56
78
let ( a, b) = ( a. 0 , b. 0 ) ;
@@ -301,6 +323,27 @@ fn main() {
301
323
} ,
302
324
"compiler_builtins::float::sub::__subsf3(a, b)" ) ;
303
325
326
+ if target_arch_arm {
327
+ gen ( |( a, b) : ( MyF64 , MyF64 ) | {
328
+ let c = a. 0 - b. 0 ;
329
+ if a. 0 . is_nan ( ) || b. 0 . is_nan ( ) || c. is_nan ( ) {
330
+ None
331
+ } else {
332
+ Some ( c)
333
+ }
334
+ } ,
335
+ "compiler_builtins::float::sub::__subdf3vfp(a, b)" ) ;
336
+ gen ( |( a, b) : ( LargeF32 , LargeF32 ) | {
337
+ let c = a. 0 - b. 0 ;
338
+ if a. 0 . is_nan ( ) || b. 0 . is_nan ( ) || c. is_nan ( ) {
339
+ None
340
+ } else {
341
+ Some ( c)
342
+ }
343
+ } ,
344
+ "compiler_builtins::float::sub::__subsf3vfp(a, b)" ) ;
345
+ }
346
+
304
347
// float/mul.rs
305
348
gen ( |( a, b) : ( MyF64 , MyF64 ) | {
306
349
let c = a. 0 * b. 0 ;
0 commit comments