| 1 | .data 32 |
| 2 | ok: |
| 3 | .c "ok" |
| 4 | |
| 5 | .code |
| 6 | prolog |
| 7 | |
| 8 | /* Simple encoding test for all different registers */ |
| 9 | movi_f %f0 0.0 |
| 10 | movi_f %f1 2.0 |
| 11 | movi_f %f2 3.0 |
| 12 | movi_f %f3 4.0 |
| 13 | fmar_f %f0 %f1 %f2 %f3 |
| 14 | beqi_f fa0 %f0 10.0 |
| 15 | calli @abort |
| 16 | fa0: |
| 17 | movi_d %f0 0.0 |
| 18 | movi_d %f1 4.0 |
| 19 | movi_d %f2 5.0 |
| 20 | movi_d %f3 6.0 |
| 21 | fmar_d %f0 %f1 %f2 %f3 |
| 22 | beqi_d da0 %f0 26.0 |
| 23 | calli @abort |
| 24 | da0: |
| 25 | movi_f %f0 0.0 |
| 26 | movi_f %f1 2.0 |
| 27 | movi_f %f2 3.0 |
| 28 | movi_f %f3 4.0 |
| 29 | fmsr_f %f0 %f1 %f2 %f3 |
| 30 | beqi_f fs0 %f0 2.0 |
| 31 | calli @abort |
| 32 | fs0: |
| 33 | movi_d %f0 0.0 |
| 34 | movi_d %f1 4.0 |
| 35 | movi_d %f2 5.0 |
| 36 | movi_d %f3 6.0 |
| 37 | fmsr_d %f0 %f1 %f2 %f3 |
| 38 | beqi_d ds0 %f0 14.0 |
| 39 | calli @abort |
| 40 | ds0: |
| 41 | |
| 42 | /* Simple encoding test for result also first argument */ |
| 43 | movi_f %f1 2.0 |
| 44 | movi_f %f2 3.0 |
| 45 | movi_f %f3 4.0 |
| 46 | fmar_f %f1 %f1 %f2 %f3 |
| 47 | beqi_f fa1 %f1 10.0 |
| 48 | calli @abort |
| 49 | fa1: |
| 50 | movi_d %f1 4.0 |
| 51 | movi_d %f2 5.0 |
| 52 | movi_d %f3 6.0 |
| 53 | fmar_d %f1 %f1 %f2 %f3 |
| 54 | beqi_d da1 %f1 26.0 |
| 55 | calli @abort |
| 56 | da1: |
| 57 | movi_f %f1 2.0 |
| 58 | movi_f %f2 3.0 |
| 59 | movi_f %f3 4.0 |
| 60 | fmsr_f %f1 %f1 %f2 %f3 |
| 61 | beqi_f fs1 %f1 2.0 |
| 62 | calli @abort |
| 63 | fs1: |
| 64 | movi_d %f1 4.0 |
| 65 | movi_d %f2 5.0 |
| 66 | movi_d %f3 6.0 |
| 67 | fmsr_d %f1 %f1 %f2 %f3 |
| 68 | beqi_d ds1 %f1 14.0 |
| 69 | calli @abort |
| 70 | ds1: |
| 71 | |
| 72 | /* Simple encoding test for result also second argument */ |
| 73 | movi_f %f1 2.0 |
| 74 | movi_f %f2 3.0 |
| 75 | movi_f %f3 4.0 |
| 76 | fmar_f %f2 %f1 %f2 %f3 |
| 77 | beqi_f fa2 %f2 10.0 |
| 78 | calli @abort |
| 79 | fa2: |
| 80 | movi_d %f1 4.0 |
| 81 | movi_d %f2 5.0 |
| 82 | movi_d %f3 6.0 |
| 83 | fmar_d %f2 %f1 %f2 %f3 |
| 84 | beqi_d da2 %f2 26.0 |
| 85 | calli @abort |
| 86 | da2: |
| 87 | movi_f %f1 2.0 |
| 88 | movi_f %f2 3.0 |
| 89 | movi_f %f3 4.0 |
| 90 | fmsr_f %f2 %f1 %f2 %f3 |
| 91 | beqi_f fs2 %f2 2.0 |
| 92 | calli @abort |
| 93 | fs2: |
| 94 | movi_d %f1 4.0 |
| 95 | movi_d %f2 5.0 |
| 96 | movi_d %f3 6.0 |
| 97 | fmsr_d %f2 %f1 %f2 %f3 |
| 98 | beqi_d ds2 %f2 14.0 |
| 99 | calli @abort |
| 100 | ds2: |
| 101 | |
| 102 | /* Simple encoding test for result also third argument */ |
| 103 | movi_f %f1 2.0 |
| 104 | movi_f %f2 3.0 |
| 105 | movi_f %f3 4.0 |
| 106 | fmar_f %f3 %f1 %f2 %f3 |
| 107 | beqi_f fa3 %f3 10.0 |
| 108 | calli @abort |
| 109 | fa3: |
| 110 | movi_d %f1 4.0 |
| 111 | movi_d %f2 5.0 |
| 112 | movi_d %f3 6.0 |
| 113 | fmar_d %f3 %f1 %f2 %f3 |
| 114 | beqi_d da3 %f3 26.0 |
| 115 | calli @abort |
| 116 | da3: |
| 117 | movi_f %f1 2.0 |
| 118 | movi_f %f2 3.0 |
| 119 | movi_f %f3 4.0 |
| 120 | fmsr_f %f3 %f1 %f2 %f3 |
| 121 | beqi_f fs3 %f3 2.0 |
| 122 | calli @abort |
| 123 | fs3: |
| 124 | movi_d %f1 4.0 |
| 125 | movi_d %f2 5.0 |
| 126 | movi_d %f3 6.0 |
| 127 | fmsr_d %f3 %f1 %f2 %f3 |
| 128 | beqi_d ds3 %f3 14.0 |
| 129 | calli @abort |
| 130 | ds3: |
| 131 | |
| 132 | /* Simple encoding test for all different registers */ |
| 133 | movi_f %f0 0.0 |
| 134 | movi_f %f1 2.0 |
| 135 | movi_f %f2 3.0 |
| 136 | fmai_f %f0 %f1 %f2 4.0 |
| 137 | beqi_f fai0 %f0 10.0 |
| 138 | calli @abort |
| 139 | fai0: |
| 140 | movi_d %f0 0.0 |
| 141 | movi_d %f1 4.0 |
| 142 | movi_d %f2 5.0 |
| 143 | fmai_d %f0 %f1 %f2 6.0 |
| 144 | beqi_d dai0 %f0 26.0 |
| 145 | calli @abort |
| 146 | dai0: |
| 147 | movi_f %f0 0.0 |
| 148 | movi_f %f1 2.0 |
| 149 | movi_f %f2 3.0 |
| 150 | fmsi_f %f0 %f1 %f2 4.0 |
| 151 | beqi_f fsi0 %f0 2.0 |
| 152 | calli @abort |
| 153 | fsi0: |
| 154 | movi_d %f0 0.0 |
| 155 | movi_d %f1 4.0 |
| 156 | movi_d %f2 5.0 |
| 157 | fmsi_d %f0 %f1 %f2 6.0 |
| 158 | beqi_d dsi0 %f0 14.0 |
| 159 | calli @abort |
| 160 | dsi0: |
| 161 | |
| 162 | /* Simple encoding test for result also first argument */ |
| 163 | movi_f %f1 2.0 |
| 164 | movi_f %f2 3.0 |
| 165 | fmai_f %f1 %f1 %f2 4.0 |
| 166 | beqi_f fai1 %f1 10.0 |
| 167 | calli @abort |
| 168 | fai1: |
| 169 | movi_d %f1 4.0 |
| 170 | movi_d %f2 5.0 |
| 171 | fmai_d %f1 %f1 %f2 6.0 |
| 172 | beqi_d dai1 %f1 26.0 |
| 173 | calli @abort |
| 174 | dai1: |
| 175 | movi_f %f1 2.0 |
| 176 | movi_f %f2 3.0 |
| 177 | fmsi_f %f1 %f1 %f2 4.0 |
| 178 | beqi_f fsi1 %f1 2.0 |
| 179 | calli @abort |
| 180 | fsi1: |
| 181 | movi_d %f1 4.0 |
| 182 | movi_d %f2 5.0 |
| 183 | fmsi_d %f1 %f1 %f2 6.0 |
| 184 | beqi_d dsi1 %f1 14.0 |
| 185 | calli @abort |
| 186 | dsi1: |
| 187 | |
| 188 | /* Simple encoding test for result also second argument */ |
| 189 | movi_f %f1 2.0 |
| 190 | movi_f %f2 3.0 |
| 191 | fmai_f %f2 %f1 %f2 4.0 |
| 192 | beqi_f fai2 %f2 10.0 |
| 193 | calli @abort |
| 194 | fai2: |
| 195 | movi_d %f1 4.0 |
| 196 | movi_d %f2 5.0 |
| 197 | fmai_d %f2 %f1 %f2 6.0 |
| 198 | beqi_d dai2 %f2 26.0 |
| 199 | calli @abort |
| 200 | dai2: |
| 201 | movi_f %f1 2.0 |
| 202 | movi_f %f2 3.0 |
| 203 | fmsi_f %f2 %f1 %f2 4.0 |
| 204 | beqi_f fsi2 %f2 2.0 |
| 205 | calli @abort |
| 206 | fsi2: |
| 207 | movi_d %f1 4.0 |
| 208 | movi_d %f2 5.0 |
| 209 | fmsi_d %f2 %f1 %f2 6.0 |
| 210 | beqi_d dsi2 %f2 14.0 |
| 211 | calli @abort |
| 212 | dsi2: |
| 213 | |
| 214 | /* Simple encoding test for all different registers */ |
| 215 | movi_f %f0 0.0 |
| 216 | movi_f %f1 2.0 |
| 217 | movi_f %f2 3.0 |
| 218 | movi_f %f3 4.0 |
| 219 | fnmar_f %f0 %f1 %f2 %f3 |
| 220 | beqi_f fna0 %f0 -10.0 |
| 221 | calli @abort |
| 222 | fna0: |
| 223 | movi_d %f0 0.0 |
| 224 | movi_d %f1 4.0 |
| 225 | movi_d %f2 5.0 |
| 226 | movi_d %f3 6.0 |
| 227 | fnmar_d %f0 %f1 %f2 %f3 |
| 228 | beqi_d dna0 %f0 -26.0 |
| 229 | calli @abort |
| 230 | dna0: |
| 231 | movi_f %f0 0.0 |
| 232 | movi_f %f1 2.0 |
| 233 | movi_f %f2 3.0 |
| 234 | movi_f %f3 4.0 |
| 235 | fnmsr_f %f0 %f1 %f2 %f3 |
| 236 | beqi_f fns0 %f0 -2.0 |
| 237 | calli @abort |
| 238 | fns0: |
| 239 | movi_d %f0 0.0 |
| 240 | movi_d %f1 4.0 |
| 241 | movi_d %f2 5.0 |
| 242 | movi_d %f3 6.0 |
| 243 | fnmsr_d %f0 %f1 %f2 %f3 |
| 244 | beqi_d dns0 %f0 -14.0 |
| 245 | calli @abort |
| 246 | dns0: |
| 247 | |
| 248 | /* Simple encoding test for result also first argument */ |
| 249 | movi_f %f1 2.0 |
| 250 | movi_f %f2 3.0 |
| 251 | movi_f %f3 4.0 |
| 252 | fnmar_f %f1 %f1 %f2 %f3 |
| 253 | beqi_f fna1 %f1 -10.0 |
| 254 | calli @abort |
| 255 | fna1: |
| 256 | movi_d %f1 4.0 |
| 257 | movi_d %f2 5.0 |
| 258 | movi_d %f3 6.0 |
| 259 | fnmar_d %f1 %f1 %f2 %f3 |
| 260 | beqi_d dna1 %f1 -26.0 |
| 261 | calli @abort |
| 262 | dna1: |
| 263 | movi_f %f1 2.0 |
| 264 | movi_f %f2 3.0 |
| 265 | movi_f %f3 4.0 |
| 266 | fnmsr_f %f1 %f1 %f2 %f3 |
| 267 | beqi_f fns1 %f1 -2.0 |
| 268 | calli @abort |
| 269 | fns1: |
| 270 | movi_d %f1 4.0 |
| 271 | movi_d %f2 5.0 |
| 272 | movi_d %f3 6.0 |
| 273 | fnmsr_d %f1 %f1 %f2 %f3 |
| 274 | beqi_d dns1 %f1 -14.0 |
| 275 | calli @abort |
| 276 | dns1: |
| 277 | |
| 278 | /* Simple encoding test for result also second argument */ |
| 279 | movi_f %f1 2.0 |
| 280 | movi_f %f2 3.0 |
| 281 | movi_f %f3 4.0 |
| 282 | fnmar_f %f2 %f1 %f2 %f3 |
| 283 | beqi_f fna2 %f2 -10.0 |
| 284 | calli @abort |
| 285 | fna2: |
| 286 | movi_d %f1 4.0 |
| 287 | movi_d %f2 5.0 |
| 288 | movi_d %f3 6.0 |
| 289 | fnmar_d %f2 %f1 %f2 %f3 |
| 290 | beqi_d dna2 %f2 -26.0 |
| 291 | calli @abort |
| 292 | dna2: |
| 293 | movi_f %f1 2.0 |
| 294 | movi_f %f2 3.0 |
| 295 | movi_f %f3 4.0 |
| 296 | fnmsr_f %f2 %f1 %f2 %f3 |
| 297 | beqi_f fns2 %f2 -2.0 |
| 298 | calli @abort |
| 299 | fns2: |
| 300 | movi_d %f1 4.0 |
| 301 | movi_d %f2 5.0 |
| 302 | movi_d %f3 6.0 |
| 303 | fnmsr_d %f2 %f1 %f2 %f3 |
| 304 | beqi_d dns2 %f2 -14.0 |
| 305 | calli @abort |
| 306 | dns2: |
| 307 | |
| 308 | /* Simple encoding test for result also third argument */ |
| 309 | movi_f %f1 2.0 |
| 310 | movi_f %f2 3.0 |
| 311 | movi_f %f3 4.0 |
| 312 | fnmsr_f %f3 %f1 %f2 %f3 |
| 313 | beqi_f fns3 %f3 -2.0 |
| 314 | calli @abort |
| 315 | fns3: |
| 316 | movi_d %f1 4.0 |
| 317 | movi_d %f2 5.0 |
| 318 | movi_d %f3 6.0 |
| 319 | fnmsr_d %f3 %f1 %f2 %f3 |
| 320 | beqi_d dns3 %f3 -14.0 |
| 321 | calli @abort |
| 322 | dns3: |
| 323 | movi_f %f1 2.0 |
| 324 | movi_f %f2 3.0 |
| 325 | movi_f %f3 4.0 |
| 326 | fnmar_f %f3 %f1 %f2 %f3 |
| 327 | beqi_f fna3 %f3 -10.0 |
| 328 | calli @abort |
| 329 | fna3: |
| 330 | movi_d %f1 4.0 |
| 331 | movi_d %f2 5.0 |
| 332 | movi_d %f3 6.0 |
| 333 | fnmar_d %f3 %f1 %f2 %f3 |
| 334 | beqi_d dna3 %f3 -26.0 |
| 335 | calli @abort |
| 336 | dna3: |
| 337 | |
| 338 | /* Simple encoding test for all different registers */ |
| 339 | movi_f %f0 0.0 |
| 340 | movi_f %f1 2.0 |
| 341 | movi_f %f2 3.0 |
| 342 | fnmai_f %f0 %f1 %f2 4.0 |
| 343 | beqi_f fnai0 %f0 -10.0 |
| 344 | calli @abort |
| 345 | fnai0: |
| 346 | movi_d %f0 0.0 |
| 347 | movi_d %f1 4.0 |
| 348 | movi_d %f2 5.0 |
| 349 | fnmai_d %f0 %f1 %f2 6.0 |
| 350 | beqi_d dnai0 %f0 -26.0 |
| 351 | calli @abort |
| 352 | dnai0: |
| 353 | movi_f %f0 0.0 |
| 354 | movi_f %f1 2.0 |
| 355 | movi_f %f2 3.0 |
| 356 | fnmsi_f %f0 %f1 %f2 4.0 |
| 357 | beqi_f fnsi0 %f0 -2.0 |
| 358 | calli @abort |
| 359 | fnsi0: |
| 360 | movi_d %f0 0.0 |
| 361 | movi_d %f1 4.0 |
| 362 | movi_d %f2 5.0 |
| 363 | fnmsi_d %f0 %f1 %f2 6.0 |
| 364 | beqi_d dnsi0 %f0 -14.0 |
| 365 | calli @abort |
| 366 | dnsi0: |
| 367 | |
| 368 | /* Simple encoding test for result also first argument */ |
| 369 | movi_f %f1 2.0 |
| 370 | movi_f %f2 3.0 |
| 371 | fnmai_f %f1 %f1 %f2 4.0 |
| 372 | beqi_f fnai1 %f1 -10.0 |
| 373 | calli @abort |
| 374 | fnai1: |
| 375 | movi_d %f1 4.0 |
| 376 | movi_d %f2 5.0 |
| 377 | fnmai_d %f1 %f1 %f2 6.0 |
| 378 | beqi_d dnai1 %f1 -26.0 |
| 379 | calli @abort |
| 380 | dnai1: |
| 381 | movi_f %f1 2.0 |
| 382 | movi_f %f2 3.0 |
| 383 | fnmsi_f %f1 %f1 %f2 4.0 |
| 384 | beqi_f fnsi1 %f1 -2.0 |
| 385 | calli @abort |
| 386 | fnsi1: |
| 387 | movi_d %f1 4.0 |
| 388 | movi_d %f2 5.0 |
| 389 | fnmsi_d %f1 %f1 %f2 6.0 |
| 390 | beqi_d dnsi1 %f1 -14.0 |
| 391 | calli @abort |
| 392 | dnsi1: |
| 393 | |
| 394 | /* Simple encoding test for result also second argument */ |
| 395 | movi_f %f1 2.0 |
| 396 | movi_f %f2 3.0 |
| 397 | fnmai_f %f2 %f1 %f2 4.0 |
| 398 | beqi_f fnai2 %f2 -10.0 |
| 399 | calli @abort |
| 400 | fnai2: |
| 401 | movi_d %f1 4.0 |
| 402 | movi_d %f2 5.0 |
| 403 | fnmai_d %f2 %f1 %f2 6.0 |
| 404 | beqi_d dnai2 %f2 -26.0 |
| 405 | calli @abort |
| 406 | dnai2: |
| 407 | movi_f %f1 2.0 |
| 408 | movi_f %f2 3.0 |
| 409 | fnmsi_f %f2 %f1 %f2 4.0 |
| 410 | beqi_f fnsi2 %f2 -2.0 |
| 411 | calli @abort |
| 412 | fnsi2: |
| 413 | movi_d %f1 4.0 |
| 414 | movi_d %f2 5.0 |
| 415 | fnmsi_d %f2 %f1 %f2 6.0 |
| 416 | beqi_d dnsi2 %f2 -14.0 |
| 417 | calli @abort |
| 418 | dnsi2: |
| 419 | |
| 420 | prepare |
| 421 | pushargi ok |
| 422 | finishi @puts |
| 423 | |
| 424 | ret |
| 425 | epilog |