@@ -121,6 +121,98 @@ fn main() {
121
121
} ,
122
122
"compiler_builtins::float::cmp::__lesf2(a, b)" ) ;
123
123
124
+ if target_arch_arm {
125
+ gen ( |( a, b) : ( MyF32 , MyF32 ) | {
126
+ if a. 0 . is_nan ( ) || b. 0 . is_nan ( ) {
127
+ return None ;
128
+ }
129
+ let c = ( a. 0 <= b. 0 ) as i32 ;
130
+ Some ( c)
131
+ } ,
132
+ "compiler_builtins::float::cmp::__aeabi_fcmple(a, b)" ) ;
133
+
134
+ gen ( |( a, b) : ( MyF32 , MyF32 ) | {
135
+ if a. 0 . is_nan ( ) || b. 0 . is_nan ( ) {
136
+ return None ;
137
+ }
138
+ let c = ( a. 0 >= b. 0 ) as i32 ;
139
+ Some ( c)
140
+ } ,
141
+ "compiler_builtins::float::cmp::__aeabi_fcmpge(a, b)" ) ;
142
+
143
+ gen ( |( a, b) : ( MyF32 , MyF32 ) | {
144
+ if a. 0 . is_nan ( ) || b. 0 . is_nan ( ) {
145
+ return None ;
146
+ }
147
+ let c = ( a. 0 == b. 0 ) as i32 ;
148
+ Some ( c)
149
+ } ,
150
+ "compiler_builtins::float::cmp::__aeabi_fcmpeq(a, b)" ) ;
151
+
152
+ gen ( |( a, b) : ( MyF32 , MyF32 ) | {
153
+ if a. 0 . is_nan ( ) || b. 0 . is_nan ( ) {
154
+ return None ;
155
+ }
156
+ let c = ( a. 0 < b. 0 ) as i32 ;
157
+ Some ( c)
158
+ } ,
159
+ "compiler_builtins::float::cmp::__aeabi_fcmplt(a, b)" ) ;
160
+
161
+ gen ( |( a, b) : ( MyF32 , MyF32 ) | {
162
+ if a. 0 . is_nan ( ) || b. 0 . is_nan ( ) {
163
+ return None ;
164
+ }
165
+ let c = ( a. 0 > b. 0 ) as i32 ;
166
+ Some ( c)
167
+ } ,
168
+ "compiler_builtins::float::cmp::__aeabi_fcmpgt(a, b)" ) ;
169
+
170
+ gen ( |( a, b) : ( MyF64 , MyF64 ) | {
171
+ if a. 0 . is_nan ( ) || b. 0 . is_nan ( ) {
172
+ return None ;
173
+ }
174
+ let c = ( a. 0 <= b. 0 ) as i32 ;
175
+ Some ( c)
176
+ } ,
177
+ "compiler_builtins::float::cmp::__aeabi_dcmple(a, b)" ) ;
178
+
179
+ gen ( |( a, b) : ( MyF64 , MyF64 ) | {
180
+ if a. 0 . is_nan ( ) || b. 0 . is_nan ( ) {
181
+ return None ;
182
+ }
183
+ let c = ( a. 0 >= b. 0 ) as i32 ;
184
+ Some ( c)
185
+ } ,
186
+ "compiler_builtins::float::cmp::__aeabi_dcmpge(a, b)" ) ;
187
+
188
+ gen ( |( a, b) : ( MyF64 , MyF64 ) | {
189
+ if a. 0 . is_nan ( ) || b. 0 . is_nan ( ) {
190
+ return None ;
191
+ }
192
+ let c = ( a. 0 == b. 0 ) as i32 ;
193
+ Some ( c)
194
+ } ,
195
+ "compiler_builtins::float::cmp::__aeabi_dcmpeq(a, b)" ) ;
196
+
197
+ gen ( |( a, b) : ( MyF64 , MyF64 ) | {
198
+ if a. 0 . is_nan ( ) || b. 0 . is_nan ( ) {
199
+ return None ;
200
+ }
201
+ let c = ( a. 0 < b. 0 ) as i32 ;
202
+ Some ( c)
203
+ } ,
204
+ "compiler_builtins::float::cmp::__aeabi_dcmplt(a, b)" ) ;
205
+
206
+ gen ( |( a, b) : ( MyF64 , MyF64 ) | {
207
+ if a. 0 . is_nan ( ) || b. 0 . is_nan ( ) {
208
+ return None ;
209
+ }
210
+ let c = ( a. 0 > b. 0 ) as i32 ;
211
+ Some ( c)
212
+ } ,
213
+ "compiler_builtins::float::cmp::__aeabi_dcmpgt(a, b)" ) ;
214
+ }
215
+
124
216
// float/conv.rs
125
217
gen ( |a : MyF64 | i64 ( a. 0 ) . ok ( ) ,
126
218
"compiler_builtins::float::conv::__fixdfdi(a)" ) ;
0 commit comments