1 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 2 MOTOROLA MICROPROCESSOR & MEMORY TECHNOLOGY GROUP 3 M68000 Hi-Performance Microprocessor Division 4 M68060 Software Package 5 Production Release P1.00 -- October 10, 1994 6 7 M68060 Software Package Copyright © 1993, 1994 Motorola Inc. All rights reserved. 8 9 THE SOFTWARE is provided on an "AS IS" basis and without warranty. 10 To the maximum extent permitted by applicable law, 11 MOTOROLA DISCLAIMS ALL WARRANTIES WHETHER EXPRESS OR IMPLIED, 12 INCLUDING IMPLIED WARRANTIES OF MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE 13 and any warranty against infringement with regard to the SOFTWARE 14 (INCLUDING ANY MODIFIED VERSIONS THEREOF) and any accompanying written materials. 15 16 To the maximum extent permitted by applicable law, 17 IN NO EVENT SHALL MOTOROLA BE LIABLE FOR ANY DAMAGES WHATSOEVER 18 (INCLUDING WITHOUT LIMITATION, DAMAGES FOR LOSS OF BUSINESS PROFITS, 19 BUSINESS INTERRUPTION, LOSS OF BUSINESS INFORMATION, OR OTHER PECUNIARY LOSS) 20 ARISING OF THE USE OR INABILITY TO USE THE SOFTWARE. 21 Motorola assumes no responsibility for the maintenance and support of the SOFTWARE. 22 23 You are hereby granted a copyright license to use, modify, and distribute the SOFTWARE 24 so long as this entire notice is retained without alteration in any modified and/or 25 redistributed versions, and that such modified versions are clearly identified as such. 26 No licenses are granted by implication, estoppel or otherwise under any patents 27 or trademarks of Motorola, Inc. 28 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 29 ############################################# 30 set SREGS, -64 31 set IREGS, -128 32 set IFPREGS, -224 33 set SFPREGS, -320 34 set IFPCREGS, -332 35 set SFPCREGS, -344 36 set ICCR, -346 37 set SCCR, -348 38 set TESTCTR, -352 39 set DATA, -384 40 41 ############################################# 42 TESTTOP: 43 bra.l _060TESTS_ 44 short 0x0000 45 46 bra.l _060TESTS_unimp 47 short 0x0000 48 49 bra.l _060TESTS_enable 50 short 0x0000 51 52 start_str: 53 string "Testing 68060 FPSP started:\n" 54 55 start_str_unimp: 56 string "Testing 68060 FPSP unimplemented instruction started:\n" 57 58 start_str_enable: 59 string "Testing 68060 FPSP exception enabled started:\n" 60 61 pass_str: 62 string "passed\n" 63 64 fail_str: 65 string " failed\n" 66 67 align 0x4 68 chk_test: 69 tst.l %d0 70 bne.b test_fail 71 test_pass: 72 pea pass_str(%pc) 73 bsr.l _print_str 74 addq.l &0x4,%sp 75 rts 76 test_fail: 77 mov.l %d1,-(%sp) 78 bsr.l _print_num 79 addq.l &0x4,%sp 80 81 pea fail_str(%pc) 82 bsr.l _print_str 83 addq.l &0x4,%sp 84 rts 85 86 ############################################# 87 _060TESTS_: 88 link %a6,&-384 89 90 movm.l &0x3f3c,-(%sp) 91 fmovm.x &0xff,-(%sp) 92 93 pea start_str(%pc) 94 bsr.l _print_str 95 addq.l &0x4,%sp 96 97 ### effadd 98 clr.l TESTCTR(%a6) 99 pea effadd_str(%pc) 100 bsr.l _print_str 101 addq.l &0x4,%sp 102 103 bsr.l effadd_0 104 105 bsr.l chk_test 106 107 ### unsupp 108 clr.l TESTCTR(%a6) 109 pea unsupp_str(%pc) 110 bsr.l _print_str 111 addq.l &0x4,%sp 112 113 bsr.l unsupp_0 114 115 bsr.l chk_test 116 117 ### ovfl non-maskable 118 clr.l TESTCTR(%a6) 119 pea ovfl_nm_str(%pc) 120 bsr.l _print_str 121 bsr.l ovfl_nm_0 122 123 bsr.l chk_test 124 125 ### unfl non-maskable 126 clr.l TESTCTR(%a6) 127 pea unfl_nm_str(%pc) 128 bsr.l _print_str 129 bsr.l unfl_nm_0 130 131 bsr.l chk_test 132 133 movm.l (%sp)+,&0x3cfc 134 fmovm.x (%sp)+,&0xff 135 136 unlk %a6 137 rts 138 139 _060TESTS_unimp: 140 link %a6,&-384 141 142 movm.l &0x3f3c,-(%sp) 143 fmovm.x &0xff,-(%sp) 144 145 pea start_str_unimp(%pc) 146 bsr.l _print_str 147 addq.l &0x4,%sp 148 149 ### unimp 150 clr.l TESTCTR(%a6) 151 pea unimp_str(%pc) 152 bsr.l _print_str 153 addq.l &0x4,%sp 154 155 bsr.l unimp_0 156 157 bsr.l chk_test 158 159 movm.l (%sp)+,&0x3cfc 160 fmovm.x (%sp)+,&0xff 161 162 unlk %a6 163 rts 164 165 _060TESTS_enable: 166 link %a6,&-384 167 168 movm.l &0x3f3c,-(%sp) 169 fmovm.x &0xff,-(%sp) 170 171 pea start_str_enable(%pc) 172 bsr.l _print_str 173 addq.l &0x4,%sp 174 175 ### snan 176 clr.l TESTCTR(%a6) 177 pea snan_str(%pc) 178 bsr.l _print_str 179 bsr.l snan_0 180 181 bsr.l chk_test 182 183 ### operr 184 clr.l TESTCTR(%a6) 185 pea operr_str(%pc) 186 bsr.l _print_str 187 bsr.l operr_0 188 189 bsr.l chk_test 190 191 ### ovfl 192 clr.l TESTCTR(%a6) 193 pea ovfl_str(%pc) 194 bsr.l _print_str 195 bsr.l ovfl_0 196 197 bsr.l chk_test 198 199 ### unfl 200 clr.l TESTCTR(%a6) 201 pea unfl_str(%pc) 202 bsr.l _print_str 203 bsr.l unfl_0 204 205 bsr.l chk_test 206 207 ### dz 208 clr.l TESTCTR(%a6) 209 pea dz_str(%pc) 210 bsr.l _print_str 211 bsr.l dz_0 212 213 bsr.l chk_test 214 215 ### inexact 216 clr.l TESTCTR(%a6) 217 pea inex_str(%pc) 218 bsr.l _print_str 219 bsr.l inex_0 220 221 bsr.l chk_test 222 223 movm.l (%sp)+,&0x3cfc 224 fmovm.x (%sp)+,&0xff 225 226 unlk %a6 227 rts 228 229 ############################################# 230 ############################################# 231 232 unimp_str: 233 string "\tUnimplemented FP instructions..." 234 235 align 0x4 236 unimp_0: 237 addq.l &0x1,TESTCTR(%a6) 238 239 movm.l DEF_REGS(%pc),&0x3fff 240 fmovm.x DEF_FPREGS(%pc),&0xff 241 fmovm.l DEF_FPCREGS(%pc),%fpcr,%fpsr,%fpiar 242 243 mov.w &0x0000,ICCR(%a6) 244 movm.l &0x7fff,IREGS(%a6) 245 fmovm.x &0xff,IFPREGS(%a6) 246 fmovm.l %fpcr,%fpsr,%fpiar,IFPCREGS(%a6) 247 248 mov.l &0x40000000,DATA+0x0(%a6) 249 mov.l &0xc90fdaa2,DATA+0x4(%a6) 250 mov.l &0x2168c235,DATA+0x8(%a6) 251 252 mov.w &0x0000,%cc 253 unimp_0_pc: 254 fsin.x DATA(%a6),%fp0 255 256 mov.w %cc,SCCR(%a6) 257 movm.l &0x7fff,SREGS(%a6) 258 fmovm.x &0xff,SFPREGS(%a6) 259 fmovm.l %fpcr,%fpsr,%fpiar,SFPCREGS(%a6) 260 261 mov.l &0xbfbf0000,IFPREGS+0x0(%a6) 262 mov.l &0x80000000,IFPREGS+0x4(%a6) 263 mov.l &0x00000000,IFPREGS+0x8(%a6) 264 mov.l &0x08000208,IFPCREGS+0x4(%a6) 265 lea unimp_0_pc(%pc),%a0 266 mov.l %a0,IFPCREGS+0x8(%a6) 267 268 bsr.l chkregs 269 tst.b %d0 270 bne.l error 271 272 bsr.l chkfpregs 273 tst.b %d0 274 bne.l error 275 276 unimp_1: 277 addq.l &0x1,TESTCTR(%a6) 278 279 movm.l DEF_REGS(%pc),&0x3fff 280 fmovm.x DEF_FPREGS(%pc),&0xff 281 fmovm.l DEF_FPCREGS(%pc),%fpcr,%fpsr,%fpiar 282 283 mov.w &0x0000,ICCR(%a6) 284 movm.l &0x7fff,IREGS(%a6) 285 fmovm.x &0xff,IFPREGS(%a6) 286 fmovm.l %fpcr,%fpsr,%fpiar,IFPCREGS(%a6) 287 288 mov.l &0x3ffe0000,DATA+0x0(%a6) 289 mov.l &0xc90fdaa2,DATA+0x4(%a6) 290 mov.l &0x2168c235,DATA+0x8(%a6) 291 292 mov.w &0x0000,%cc 293 unimp_1_pc: 294 ftan.x DATA(%a6),%fp0 295 296 mov.w %cc,SCCR(%a6) 297 movm.l &0x7fff,SREGS(%a6) 298 fmovm.x &0xff,SFPREGS(%a6) 299 fmovm.l %fpcr,%fpsr,%fpiar,SFPCREGS(%a6) 300 301 mov.l &0x3fff0000,IFPREGS+0x0(%a6) 302 mov.l &0x80000000,IFPREGS+0x4(%a6) 303 mov.l &0x00000000,IFPREGS+0x8(%a6) 304 mov.l &0x00000208,IFPCREGS+0x4(%a6) 305 lea unimp_1_pc(%pc),%a0 306 mov.l %a0,IFPCREGS+0x8(%a6) 307 308 bsr.l chkregs 309 tst.b %d0 310 bne.l error 311 312 bsr.l chkfpregs 313 tst.b %d0 314 bne.l error 315 316 # fmovecr 317 unimp_2: 318 addq.l &0x1,TESTCTR(%a6) 319 320 movm.l DEF_REGS(%pc),&0x3fff 321 fmovm.x DEF_FPREGS(%pc),&0xff 322 fmovm.l DEF_FPCREGS(%pc),%fpcr,%fpsr,%fpiar 323 324 mov.w &0x0000,ICCR(%a6) 325 movm.l &0x7fff,IREGS(%a6) 326 fmovm.x &0xff,IFPREGS(%a6) 327 fmovm.l %fpcr,%fpsr,%fpiar,IFPCREGS(%a6) 328 329 mov.w &0x0000,%cc 330 unimp_2_pc: 331 fmovcr.x &0x31,%fp0 332 333 mov.w %cc,SCCR(%a6) 334 movm.l &0x7fff,SREGS(%a6) 335 fmovm.x &0xff,SFPREGS(%a6) 336 fmovm.l %fpcr,%fpsr,%fpiar,SFPCREGS(%a6) 337 338 mov.l &0x40000000,IFPREGS+0x0(%a6) 339 mov.l &0x935d8ddd,IFPREGS+0x4(%a6) 340 mov.l &0xaaa8ac17,IFPREGS+0x8(%a6) 341 mov.l &0x00000208,IFPCREGS+0x4(%a6) 342 lea unimp_2_pc(%pc),%a0 343 mov.l %a0,IFPCREGS+0x8(%a6) 344 345 bsr.l chkregs 346 tst.b %d0 347 bne.l error 348 349 bsr.l chkfpregs 350 tst.b %d0 351 bne.l error 352 353 # fscc 354 unimp_3: 355 addq.l &0x1,TESTCTR(%a6) 356 357 movm.l DEF_REGS(%pc),&0x3fff 358 fmovm.x DEF_FPREGS(%pc),&0xff 359 fmovm.l DEF_FPCREGS(%pc),%fpcr,%fpsr,%fpiar 360 361 fmov.l &0x0f000000,%fpsr 362 mov.l &0x00,%d7 363 364 mov.w &0x0000,ICCR(%a6) 365 movm.l &0x7fff,IREGS(%a6) 366 fmovm.x &0xff,IFPREGS(%a6) 367 fmovm.l %fpcr,%fpsr,%fpiar,IFPCREGS(%a6) 368 369 mov.w &0x0000,%cc 370 unimp_3_pc: 371 fsgt %d7 372 373 mov.w %cc,SCCR(%a6) 374 movm.l &0x7fff,SREGS(%a6) 375 fmovm.x &0xff,SFPREGS(%a6) 376 fmovm.l %fpcr,%fpsr,%fpiar,SFPCREGS(%a6) 377 mov.l &0x0f008080,IFPCREGS+0x4(%a6) 378 lea unimp_3_pc(%pc),%a0 379 mov.l %a0,IFPCREGS+0x8(%a6) 380 381 bsr.l chkregs 382 tst.b %d0 383 bne.l error 384 385 bsr.l chkfpregs 386 tst.b %d0 387 bne.l error 388 389 # fdbcc 390 unimp_4: 391 addq.l &0x1,TESTCTR(%a6) 392 393 movm.l DEF_REGS(%pc),&0x3fff 394 fmovm.x DEF_FPREGS(%pc),&0xff 395 fmovm.l DEF_FPCREGS(%pc),%fpcr,%fpsr,%fpiar 396 397 fmov.l &0x0f000000,%fpsr 398 mov.l &0x2,%d7 399 400 mov.w &0x0000,ICCR(%a6) 401 movm.l &0x7fff,IREGS(%a6) 402 fmovm.x &0xff,IFPREGS(%a6) 403 fmovm.l %fpcr,%fpsr,%fpiar,IFPCREGS(%a6) 404 405 mov.w &0x0000,%cc 406 unimp_4_pc: 407 fdbgt.w %d7,unimp_4_pc 408 409 mov.w %cc,SCCR(%a6) 410 movm.l &0x7fff,SREGS(%a6) 411 fmovm.x &0xff,SFPREGS(%a6) 412 fmovm.l %fpcr,%fpsr,%fpiar,SFPCREGS(%a6) 413 mov.w &0xffff,IREGS+28+2(%a6) 414 mov.l &0x0f008080,IFPCREGS+0x4(%a6) 415 lea unimp_4_pc(%pc),%a0 416 mov.l %a0,IFPCREGS+0x8(%a6) 417 418 bsr.l chkregs 419 tst.b %d0 420 bne.l error 421 422 bsr.l chkfpregs 423 tst.b %d0 424 bne.l error 425 426 # ftrapcc 427 unimp_5: 428 addq.l &0x1,TESTCTR(%a6) 429 430 movm.l DEF_REGS(%pc),&0x3fff 431 fmovm.x DEF_FPREGS(%pc),&0xff 432 fmovm.l DEF_FPCREGS(%pc),%fpcr,%fpsr,%fpiar 433 434 fmov.l &0x0f000000,%fpsr 435 436 mov.w &0x0000,ICCR(%a6) 437 movm.l &0x7fff,IREGS(%a6) 438 fmovm.x &0xff,IFPREGS(%a6) 439 fmovm.l %fpcr,%fpsr,%fpiar,IFPCREGS(%a6) 440 441 mov.w &0x0000,%cc 442 unimp_5_pc: 443 ftpgt.l &0xabcdef01 444 445 mov.w %cc,SCCR(%a6) 446 movm.l &0x7fff,SREGS(%a6) 447 fmovm.x &0xff,SFPREGS(%a6) 448 fmovm.l %fpcr,%fpsr,%fpiar,SFPCREGS(%a6) 449 mov.l &0x0f008080,IFPCREGS+0x4(%a6) 450 lea unimp_5_pc(%pc),%a0 451 mov.l %a0,IFPCREGS+0x8(%a6) 452 453 bsr.l chkregs 454 tst.b %d0 455 bne.l error 456 457 bsr.l chkfpregs 458 tst.b %d0 459 bne.l error 460 461 clr.l %d0 462 rts 463 464 ############################################# 465 466 effadd_str: 467 string "\tUnimplemented <ea>..." 468 469 align 0x4 470 effadd_0: 471 addq.l &0x1,TESTCTR(%a6) 472 473 movm.l DEF_REGS(%pc),&0x3fff 474 fmovm.x DEF_FPREGS(%pc),&0xff 475 fmovm.l DEF_FPCREGS(%pc),%fpcr,%fpsr,%fpiar 476 477 mov.w &0x0000,ICCR(%a6) 478 movm.l &0x7fff,IREGS(%a6) 479 fmovm.x &0xff,IFPREGS(%a6) 480 fmovm.l %fpcr,%fpsr,%fpiar,IFPCREGS(%a6) 481 482 fmov.b &0x2,%fp0 483 484 mov.w &0x0000,%cc 485 effadd_0_pc: 486 fmul.x &0xc00000008000000000000000,%fp0 487 488 mov.w %cc,SCCR(%a6) 489 movm.l &0x7fff,SREGS(%a6) 490 fmovm.x &0xff,SFPREGS(%a6) 491 fmovm.l %fpcr,%fpsr,%fpiar,SFPCREGS(%a6) 492 493 mov.l &0xc0010000,IFPREGS+0x0(%a6) 494 mov.l &0x80000000,IFPREGS+0x4(%a6) 495 mov.l &0x00000000,IFPREGS+0x8(%a6) 496 mov.l &0x08000000,IFPCREGS+0x4(%a6) 497 lea effadd_0_pc(%pc),%a0 498 mov.l %a0,IFPCREGS+0x8(%a6) 499 500 bsr.l chkregs 501 tst.b %d0 502 bne.l error 503 504 bsr.l chkfpregs 505 tst.b %d0 506 bne.l error 507 508 effadd_1: 509 addq.l &0x1,TESTCTR(%a6) 510 511 movm.l DEF_REGS(%pc),&0x3fff 512 fmovm.x DEF_FPREGS(%pc),&0xff 513 fmovm.l DEF_FPCREGS(%pc),%fpcr,%fpsr,%fpiar 514 515 mov.w &0x0000,ICCR(%a6) 516 movm.l &0x7fff,IREGS(%a6) 517 fmovm.x &0xff,IFPREGS(%a6) 518 fmovm.l %fpcr,%fpsr,%fpiar,IFPCREGS(%a6) 519 520 mov.w &0x0000,%cc 521 effadd_1_pc: 522 fabs.p &0xc12300012345678912345678,%fp0 523 524 mov.w %cc,SCCR(%a6) 525 movm.l &0x7fff,SREGS(%a6) 526 fmovm.x &0xff,SFPREGS(%a6) 527 fmovm.l %fpcr,%fpsr,%fpiar,SFPCREGS(%a6) 528 529 mov.l &0x3e660000,IFPREGS+0x0(%a6) 530 mov.l &0xd0ed23e8,IFPREGS+0x4(%a6) 531 mov.l &0xd14035bc,IFPREGS+0x8(%a6) 532 mov.l &0x00000108,IFPCREGS+0x4(%a6) 533 lea effadd_1_pc(%pc),%a0 534 mov.l %a0,IFPCREGS+0x8(%a6) 535 536 bsr.l chkregs 537 tst.b %d0 538 bne.l error 539 540 bsr.l chkfpregs 541 tst.b %d0 542 bne.l error 543 544 fmovml_0: 545 addq.l &0x1,TESTCTR(%a6) 546 547 movm.l DEF_REGS(%pc),&0x3fff 548 fmovm.x DEF_FPREGS(%pc),&0xff 549 fmovm.l DEF_FPCREGS(%pc),%fpcr,%fpsr,%fpiar 550 551 mov.w &0x0000,ICCR(%a6) 552 mov.w &0x0000,%cc 553 movm.l &0x7fff,IREGS(%a6) 554 fmovm.x &0xff,IFPREGS(%a6) 555 fmovm.l %fpcr,%fpsr,%fpiar,IFPCREGS(%a6) 556 557 fmovm.l &0xffffffffffffffff,%fpcr,%fpsr 558 559 mov.w %cc,SCCR(%a6) 560 movm.l &0x7fff,SREGS(%a6) 561 fmovm.x &0xff,SFPREGS(%a6) 562 fmovm.l %fpcr,%fpsr,%fpiar,SFPCREGS(%a6) 563 mov.l &0x0000fff0,IFPCREGS+0x0(%a6) 564 mov.l &0x0ffffff8,IFPCREGS+0x4(%a6) 565 566 bsr.l chkregs 567 tst.b %d0 568 bne.l error 569 570 bsr.l chkfpregs 571 tst.b %d0 572 bne.l error 573 574 fmovml_1: 575 addq.l &0x1,TESTCTR(%a6) 576 577 movm.l DEF_REGS(%pc),&0x3fff 578 fmovm.x DEF_FPREGS(%pc),&0xff 579 fmovm.l DEF_FPCREGS(%pc),%fpcr,%fpsr,%fpiar 580 581 mov.w &0x0000,ICCR(%a6) 582 mov.w &0x0000,%cc 583 movm.l &0x7fff,IREGS(%a6) 584 fmovm.x &0xff,IFPREGS(%a6) 585 fmovm.l %fpcr,%fpsr,%fpiar,IFPCREGS(%a6) 586 587 fmovm.l &0xffffffffffffffff,%fpcr,%fpiar 588 589 mov.w %cc,SCCR(%a6) 590 movm.l &0x7fff,SREGS(%a6) 591 fmovm.x &0xff,SFPREGS(%a6) 592 fmovm.l %fpcr,%fpsr,%fpiar,SFPCREGS(%a6) 593 mov.l &0x0000fff0,IFPCREGS+0x0(%a6) 594 mov.l &0xffffffff,IFPCREGS+0x8(%a6) 595 596 bsr.l chkregs 597 tst.b %d0 598 bne.l error 599 600 bsr.l chkfpregs 601 tst.b %d0 602 bne.l error 603 604 fmovml_2: 605 addq.l &0x1,TESTCTR(%a6) 606 607 movm.l DEF_REGS(%pc),&0x3fff 608 fmovm.x DEF_FPREGS(%pc),&0xff 609 fmovm.l DEF_FPCREGS(%pc),%fpcr,%fpsr,%fpiar 610 611 mov.w &0x0000,ICCR(%a6) 612 mov.w &0x0000,%cc 613 movm.l &0x7fff,IREGS(%a6) 614 fmovm.x &0xff,IFPREGS(%a6) 615 fmovm.l %fpcr,%fpsr,%fpiar,IFPCREGS(%a6) 616 617 fmovm.l &0xffffffffffffffff,%fpsr,%fpiar 618 619 mov.w %cc,SCCR(%a6) 620 movm.l &0x7fff,SREGS(%a6) 621 fmovm.x &0xff,SFPREGS(%a6) 622 fmovm.l %fpcr,%fpsr,%fpiar,SFPCREGS(%a6) 623 mov.l &0x0ffffff8,IFPCREGS+0x4(%a6) 624 mov.l &0xffffffff,IFPCREGS+0x8(%a6) 625 626 bsr.l chkregs 627 tst.b %d0 628 bne.l error 629 630 bsr.l chkfpregs 631 tst.b %d0 632 bne.l error 633 634 fmovml_3: 635 addq.l &0x1,TESTCTR(%a6) 636 637 movm.l DEF_REGS(%pc),&0x3fff 638 fmovm.x DEF_FPREGS(%pc),&0xff 639 fmovm.l DEF_FPCREGS(%pc),%fpcr,%fpsr,%fpiar 640 641 mov.w &0x0000,ICCR(%a6) 642 mov.w &0x0000,%cc 643 movm.l &0x7fff,IREGS(%a6) 644 fmovm.x &0xff,IFPREGS(%a6) 645 fmovm.l %fpcr,%fpsr,%fpiar,IFPCREGS(%a6) 646 647 fmovm.l &0xffffffffffffffffffffffff,%fpcr,%fpsr,%fpiar 648 649 mov.w %cc,SCCR(%a6) 650 movm.l &0x7fff,SREGS(%a6) 651 fmovm.x &0xff,SFPREGS(%a6) 652 fmovm.l %fpcr,%fpsr,%fpiar,SFPCREGS(%a6) 653 mov.l &0x0000fff0,IFPCREGS+0x0(%a6) 654 mov.l &0x0ffffff8,IFPCREGS+0x4(%a6) 655 mov.l &0xffffffff,IFPCREGS+0x8(%a6) 656 657 bsr.l chkregs 658 tst.b %d0 659 bne.l error 660 661 bsr.l chkfpregs 662 tst.b %d0 663 bne.l error 664 665 # fmovmx dynamic 666 fmovmx_0: 667 addq.l &0x1,TESTCTR(%a6) 668 669 movm.l DEF_REGS(%pc),&0x3fff 670 fmovm.x DEF_FPREGS(%pc),&0xff 671 fmovm.l DEF_FPCREGS(%pc),%fpcr,%fpsr,%fpiar 672 673 fmov.b &0x1,%fp0 674 fmov.b &0x2,%fp1 675 fmov.b &0x3,%fp2 676 fmov.b &0x4,%fp3 677 fmov.b &0x5,%fp4 678 fmov.b &0x6,%fp5 679 fmov.b &0x7,%fp6 680 fmov.b &0x8,%fp7 681 682 fmov.l &0x0,%fpiar 683 mov.l &0xffffffaa,%d0 684 685 mov.w &0x0000,ICCR(%a6) 686 movm.l &0xffff,IREGS(%a6) 687 688 fmovm.l %fpcr,%fpsr,%fpiar,IFPCREGS(%a6) 689 fmovm.x &0xff,IFPREGS(%a6) 690 691 mov.w &0x0000,%cc 692 693 fmovm.x %d0,-(%sp) 694 695 mov.w %cc,SCCR(%a6) 696 697 fmovm.l %fpcr,%fpsr,%fpiar,SFPCREGS(%a6) 698 699 fmov.s &0x7f800000,%fp1 700 fmov.s &0x7f800000,%fp3 701 fmov.s &0x7f800000,%fp5 702 fmov.s &0x7f800000,%fp7 703 704 fmov.x (%sp)+,%fp1 705 fmov.x (%sp)+,%fp3 706 fmov.x (%sp)+,%fp5 707 fmov.x (%sp)+,%fp7 708 709 movm.l &0xffff,SREGS(%a6) 710 fmovm.x &0xff,SFPREGS(%a6) 711 712 bsr.l chkregs 713 tst.b %d0 714 bne.l error 715 716 bsr.l chkfpregs 717 tst.b %d0 718 bne.l error 719 720 fmovmx_1: 721 addq.l &0x1,TESTCTR(%a6) 722 723 movm.l DEF_REGS(%pc),&0x3fff 724 fmovm.x DEF_FPREGS(%pc),&0xff 725 fmovm.l DEF_FPCREGS(%pc),%fpcr,%fpsr,%fpiar 726 727 fmov.b &0x1,%fp0 728 fmov.b &0x2,%fp1 729 fmov.b &0x3,%fp2 730 fmov.b &0x4,%fp3 731 fmov.b &0x5,%fp4 732 fmov.b &0x6,%fp5 733 fmov.b &0x7,%fp6 734 fmov.b &0x8,%fp7 735 736 fmov.x %fp6,-(%sp) 737 fmov.x %fp4,-(%sp) 738 fmov.x %fp2,-(%sp) 739 fmov.x %fp0,-(%sp) 740 741 fmovm.x &0xff,IFPREGS(%a6) 742 743 fmov.s &0x7f800000,%fp6 744 fmov.s &0x7f800000,%fp4 745 fmov.s &0x7f800000,%fp2 746 fmov.s &0x7f800000,%fp0 747 748 fmov.l &0x0,%fpiar 749 fmov.l &0x0,%fpsr 750 mov.l &0xffffffaa,%d0 751 752 mov.w &0x0000,ICCR(%a6) 753 movm.l &0xffff,IREGS(%a6) 754 755 fmovm.l %fpcr,%fpsr,%fpiar,IFPCREGS(%a6) 756 757 mov.w &0x0000,%cc 758 759 fmovm.x (%sp)+,%d0 760 761 mov.w %cc,SCCR(%a6) 762 763 fmovm.l %fpcr,%fpsr,%fpiar,SFPCREGS(%a6) 764 765 movm.l &0xffff,SREGS(%a6) 766 fmovm.x &0xff,SFPREGS(%a6) 767 768 bsr.l chkregs 769 tst.b %d0 770 bne.l error 771 772 bsr.l chkfpregs 773 tst.b %d0 774 bne.l error 775 776 fmovmx_2: 777 addq.l &0x1,TESTCTR(%a6) 778 779 movm.l DEF_REGS(%pc),&0x3fff 780 fmovm.x DEF_FPREGS(%pc),&0xff 781 fmovm.l DEF_FPCREGS(%pc),%fpcr,%fpsr,%fpiar 782 783 fmov.b &0x1,%fp0 784 fmov.b &0x2,%fp1 785 fmov.b &0x3,%fp2 786 fmov.b &0x4,%fp3 787 fmov.b &0x5,%fp4 788 fmov.b &0x6,%fp5 789 fmov.b &0x7,%fp6 790 fmov.b &0x8,%fp7 791 792 fmov.l &0x0,%fpiar 793 mov.l &0xffffff00,%d0 794 795 mov.w &0x0000,ICCR(%a6) 796 movm.l &0xffff,IREGS(%a6) 797 798 fmovm.l %fpcr,%fpsr,%fpiar,IFPCREGS(%a6) 799 fmovm.x &0xff,IFPREGS(%a6) 800 801 mov.w &0x0000,%cc 802 803 fmovm.x %d0,-(%sp) 804 805 mov.w %cc,SCCR(%a6) 806 807 fmovm.l %fpcr,%fpsr,%fpiar,SFPCREGS(%a6) 808 809 movm.l &0xffff,SREGS(%a6) 810 fmovm.x &0xff,SFPREGS(%a6) 811 812 bsr.l chkregs 813 tst.b %d0 814 bne.l error 815 816 bsr.l chkfpregs 817 tst.b %d0 818 bne.l error 819 820 clr.l %d0 821 rts 822 823 ########################################################### 824 825 # This test will take a non-maskable overflow directly. 826 ovfl_nm_str: 827 string "\tNon-maskable overflow..." 828 829 align 0x4 830 ovfl_nm_0: 831 addq.l &0x1,TESTCTR(%a6) 832 833 movm.l DEF_REGS(%pc),&0x3fff 834 fmovm.x DEF_FPREGS(%pc),&0xff 835 fmovm.l DEF_FPCREGS(%pc),%fpcr,%fpsr,%fpiar 836 837 mov.w &0x0000,ICCR(%a6) 838 movm.l &0x7fff,IREGS(%a6) 839 fmovm.x &0xff,IFPREGS(%a6) 840 fmovm.l %fpcr,%fpsr,%fpiar,IFPCREGS(%a6) 841 842 fmov.b &0x2,%fp0 843 mov.l &0x7ffe0000,DATA+0x0(%a6) 844 mov.l &0x80000000,DATA+0x4(%a6) 845 mov.l &0x00000000,DATA+0x8(%a6) 846 847 mov.w &0x0000,%cc 848 ovfl_nm_0_pc: 849 fmul.x DATA(%a6),%fp0 850 851 mov.w %cc,SCCR(%a6) 852 movm.l &0x7fff,SREGS(%a6) 853 fmovm.x &0xff,SFPREGS(%a6) 854 fmovm.l %fpcr,%fpsr,%fpiar,SFPCREGS(%a6) 855 856 mov.l &0x7fff0000,IFPREGS+0x0(%a6) 857 mov.l &0x00000000,IFPREGS+0x4(%a6) 858 mov.l &0x00000000,IFPREGS+0x8(%a6) 859 mov.l &0x02001048,IFPCREGS+0x4(%a6) 860 lea ovfl_nm_0_pc(%pc),%a0 861 mov.l %a0,IFPCREGS+0x8(%a6) 862 863 bsr.l chkregs 864 tst.b %d0 865 bne.l error 866 867 bsr.l chkfpregs 868 tst.b %d0 869 bne.l error 870 871 clr.l %d0 872 rts 873 874 ########################################################### 875 876 # This test will take an overflow directly. 877 ovfl_str: 878 string "\tEnabled overflow..." 879 880 align 0x4 881 ovfl_0: 882 addq.l &0x1,TESTCTR(%a6) 883 884 movm.l DEF_REGS(%pc),&0x3fff 885 fmovm.x DEF_FPREGS(%pc),&0xff 886 fmovm.l DEF_FPCREGS(%pc),%fpcr,%fpsr,%fpiar 887 888 mov.w &0x0000,ICCR(%a6) 889 movm.l &0x7fff,IREGS(%a6) 890 fmovm.x &0xff,IFPREGS(%a6) 891 fmov.l &0x00001000,%fpcr 892 fmovm.l %fpcr,%fpsr,%fpiar,IFPCREGS(%a6) 893 894 fmov.b &0x2,%fp0 895 mov.l &0x7ffe0000,DATA+0x0(%a6) 896 mov.l &0x80000000,DATA+0x4(%a6) 897 mov.l &0x00000000,DATA+0x8(%a6) 898 899 mov.w &0x0000,%cc 900 ovfl_0_pc: 901 fmul.x DATA(%a6),%fp0 902 903 mov.w %cc,SCCR(%a6) 904 movm.l &0x7fff,SREGS(%a6) 905 fmovm.x &0xff,SFPREGS(%a6) 906 fmovm.l %fpcr,%fpsr,%fpiar,SFPCREGS(%a6) 907 908 mov.l &0x7fff0000,IFPREGS+0x0(%a6) 909 mov.l &0x00000000,IFPREGS+0x4(%a6) 910 mov.l &0x00000000,IFPREGS+0x8(%a6) 911 mov.l &0x02001048,IFPCREGS+0x4(%a6) 912 lea ovfl_0_pc(%pc),%a0 913 mov.l %a0,IFPCREGS+0x8(%a6) 914 915 bsr.l chkregs 916 tst.b %d0 917 bne.l error 918 919 bsr.l chkfpregs 920 tst.b %d0 921 bne.l error 922 923 clr.l %d0 924 rts 925 926 ##################################################################### 927 928 # This test will take an underflow directly. 929 unfl_str: 930 string "\tEnabled underflow..." 931 932 align 0x4 933 unfl_0: 934 addq.l &0x1,TESTCTR(%a6) 935 936 movm.l DEF_REGS(%pc),&0x3fff 937 fmovm.x DEF_FPREGS(%pc),&0xff 938 fmovm.l DEF_FPCREGS(%pc),%fpcr,%fpsr,%fpiar 939 940 mov.w &0x0000,ICCR(%a6) 941 movm.l &0x7fff,IREGS(%a6) 942 fmovm.x &0xff,IFPREGS(%a6) 943 fmov.l &0x00000800,%fpcr 944 fmovm.l %fpcr,%fpsr,%fpiar,IFPCREGS(%a6) 945 946 mov.l &0x00000000,DATA+0x0(%a6) 947 mov.l &0x80000000,DATA+0x4(%a6) 948 mov.l &0x00000000,DATA+0x8(%a6) 949 fmovm.x DATA(%a6),&0x80 950 951 mov.w &0x0000,%cc 952 unfl_0_pc: 953 fdiv.b &0x2,%fp0 954 955 mov.w %cc,SCCR(%a6) 956 movm.l &0x7fff,SREGS(%a6) 957 fmovm.x &0xff,SFPREGS(%a6) 958 fmovm.l %fpcr,%fpsr,%fpiar,SFPCREGS(%a6) 959 960 mov.l &0x00000000,IFPREGS+0x0(%a6) 961 mov.l &0x40000000,IFPREGS+0x4(%a6) 962 mov.l &0x00000000,IFPREGS+0x8(%a6) 963 mov.l &0x00000800,IFPCREGS+0x4(%a6) 964 lea unfl_0_pc(%pc),%a0 965 mov.l %a0,IFPCREGS+0x8(%a6) 966 967 bsr.l chkregs 968 tst.b %d0 969 bne.l error 970 971 bsr.l chkfpregs 972 tst.b %d0 973 bne.l error 974 975 clr.l %d0 976 rts 977 978 ##################################################################### 979 980 # This test will take a non-maskable underflow directly. 981 unfl_nm_str: 982 string "\tNon-maskable underflow..." 983 984 align 0x4 985 unfl_nm_0: 986 addq.l &0x1,TESTCTR(%a6) 987 988 movm.l DEF_REGS(%pc),&0x3fff 989 fmovm.x DEF_FPREGS(%pc),&0xff 990 fmovm.l DEF_FPCREGS(%pc),%fpcr,%fpsr,%fpiar 991 992 mov.w &0x0000,ICCR(%a6) 993 movm.l &0x7fff,IREGS(%a6) 994 fmovm.x &0xff,IFPREGS(%a6) 995 fmovm.l %fpcr,%fpsr,%fpiar,IFPCREGS(%a6) 996 997 mov.l &0x00000000,DATA+0x0(%a6) 998 mov.l &0x80000000,DATA+0x4(%a6) 999 mov.l &0x00000000,DATA+0x8(%a6) 1000 fmovm.x DATA(%a6),&0x80 1001 1002 mov.w &0x0000,%cc 1003 unfl_nm_0_pc: 1004 fdiv.b &0x2,%fp0 1005 1006 mov.w %cc,SCCR(%a6) 1007 movm.l &0x7fff,SREGS(%a6) 1008 fmovm.x &0xff,SFPREGS(%a6) 1009 fmovm.l %fpcr,%fpsr,%fpiar,SFPCREGS(%a6) 1010 1011 mov.l &0x00000000,IFPREGS+0x0(%a6) 1012 mov.l &0x40000000,IFPREGS+0x4(%a6) 1013 mov.l &0x00000000,IFPREGS+0x8(%a6) 1014 mov.l &0x00000800,IFPCREGS+0x4(%a6) 1015 lea unfl_nm_0_pc(%pc),%a0 1016 mov.l %a0,IFPCREGS+0x8(%a6) 1017 1018 bsr.l chkregs 1019 tst.b %d0 1020 bne.l error 1021 1022 bsr.l chkfpregs 1023 tst.b %d0 1024 bne.l error 1025 1026 clr.l %d0 1027 rts 1028 1029 ##################################################################### 1030 1031 inex_str: 1032 string "\tEnabled inexact..." 1033 1034 align 0x4 1035 inex_0: 1036 addq.l &0x1,TESTCTR(%a6) 1037 1038 movm.l DEF_REGS(%pc),&0x3fff 1039 fmovm.x DEF_FPREGS(%pc),&0xff 1040 fmovm.l DEF_FPCREGS(%pc),%fpcr,%fpsr,%fpiar 1041 1042 mov.w &0x0000,ICCR(%a6) 1043 movm.l &0x7fff,IREGS(%a6) 1044 fmovm.x &0xff,IFPREGS(%a6) 1045 fmov.l &0x00000200,%fpcr # enable inexact 1046 fmovm.l %fpcr,%fpsr,%fpiar,IFPCREGS(%a6) 1047 1048 mov.l &0x50000000,DATA+0x0(%a6) 1049 mov.l &0x80000000,DATA+0x4(%a6) 1050 mov.l &0x00000000,DATA+0x8(%a6) 1051 fmovm.x DATA(%a6),&0x80 1052 1053 mov.w &0x0000,%cc 1054 inex_0_pc: 1055 fadd.b &0x2,%fp0 1056 1057 mov.w %cc,SCCR(%a6) 1058 movm.l &0x7fff,SREGS(%a6) 1059 fmovm.x &0xff,SFPREGS(%a6) 1060 fmovm.l %fpcr,%fpsr,%fpiar,SFPCREGS(%a6) 1061 1062 mov.l &0x50000000,IFPREGS+0x0(%a6) 1063 mov.l &0x80000000,IFPREGS+0x4(%a6) 1064 mov.l &0x00000000,IFPREGS+0x8(%a6) 1065 mov.l &0x00000208,IFPCREGS+0x4(%a6) 1066 lea inex_0_pc(%pc),%a0 1067 mov.l %a0,IFPCREGS+0x8(%a6) 1068 1069 bsr.l chkregs 1070 tst.b %d0 1071 bne.l error 1072 1073 bsr.l chkfpregs 1074 tst.b %d0 1075 bne.l error 1076 1077 clr.l %d0 1078 rts 1079 1080 ##################################################################### 1081 1082 snan_str: 1083 string "\tEnabled SNAN..." 1084 1085 align 0x4 1086 snan_0: 1087 addq.l &0x1,TESTCTR(%a6) 1088 1089 movm.l DEF_REGS(%pc),&0x3fff 1090 fmovm.x DEF_FPREGS(%pc),&0xff 1091 fmovm.l DEF_FPCREGS(%pc),%fpcr,%fpsr,%fpiar 1092 1093 mov.w &0x0000,ICCR(%a6) 1094 movm.l &0x7fff,IREGS(%a6) 1095 fmovm.x &0xff,IFPREGS(%a6) 1096 fmov.l &0x00004000,%fpcr # enable SNAN 1097 fmovm.l %fpcr,%fpsr,%fpiar,IFPCREGS(%a6) 1098 1099 mov.l &0xffff0000,DATA+0x0(%a6) 1100 mov.l &0x00000000,DATA+0x4(%a6) 1101 mov.l &0x00000001,DATA+0x8(%a6) 1102 fmovm.x DATA(%a6),&0x80 1103 1104 mov.w &0x0000,%cc 1105 snan_0_pc: 1106 fadd.b &0x2,%fp0 1107 1108 mov.w %cc,SCCR(%a6) 1109 movm.l &0x7fff,SREGS(%a6) 1110 fmovm.x &0xff,SFPREGS(%a6) 1111 fmovm.l %fpcr,%fpsr,%fpiar,SFPCREGS(%a6) 1112 1113 mov.l &0xffff0000,IFPREGS+0x0(%a6) 1114 mov.l &0x00000000,IFPREGS+0x4(%a6) 1115 mov.l &0x00000001,IFPREGS+0x8(%a6) 1116 mov.l &0x09004080,IFPCREGS+0x4(%a6) 1117 lea snan_0_pc(%pc),%a0 1118 mov.l %a0,IFPCREGS+0x8(%a6) 1119 1120 bsr.l chkregs 1121 tst.b %d0 1122 bne.l error 1123 1124 bsr.l chkfpregs 1125 tst.b %d0 1126 bne.l error 1127 1128 clr.l %d0 1129 rts 1130 1131 ##################################################################### 1132 1133 operr_str: 1134 string "\tEnabled OPERR..." 1135 1136 align 0x4 1137 operr_0: 1138 addq.l &0x1,TESTCTR(%a6) 1139 1140 movm.l DEF_REGS(%pc),&0x3fff 1141 fmovm.x DEF_FPREGS(%pc),&0xff 1142 fmovm.l DEF_FPCREGS(%pc),%fpcr,%fpsr,%fpiar 1143 1144 mov.w &0x0000,ICCR(%a6) 1145 movm.l &0x7fff,IREGS(%a6) 1146 fmovm.x &0xff,IFPREGS(%a6) 1147 fmov.l &0x00002000,%fpcr # enable OPERR 1148 fmovm.l %fpcr,%fpsr,%fpiar,IFPCREGS(%a6) 1149 1150 mov.l &0xffff0000,DATA+0x0(%a6) 1151 mov.l &0x00000000,DATA+0x4(%a6) 1152 mov.l &0x00000000,DATA+0x8(%a6) 1153 fmovm.x DATA(%a6),&0x80 1154 1155 mov.w &0x0000,%cc 1156 operr_0_pc: 1157 fadd.s &0x7f800000,%fp0 1158 1159 mov.w %cc,SCCR(%a6) 1160 movm.l &0x7fff,SREGS(%a6) 1161 fmovm.x &0xff,SFPREGS(%a6) 1162 fmovm.l %fpcr,%fpsr,%fpiar,SFPCREGS(%a6) 1163 1164 mov.l &0xffff0000,IFPREGS+0x0(%a6) 1165 mov.l &0x00000000,IFPREGS+0x4(%a6) 1166 mov.l &0x00000000,IFPREGS+0x8(%a6) 1167 mov.l &0x01002080,IFPCREGS+0x4(%a6) 1168 lea operr_0_pc(%pc),%a0 1169 mov.l %a0,IFPCREGS+0x8(%a6) 1170 1171 bsr.l chkregs 1172 tst.b %d0 1173 bne.l error 1174 1175 bsr.l chkfpregs 1176 tst.b %d0 1177 bne.l error 1178 1179 clr.l %d0 1180 rts 1181 1182 ##################################################################### 1183 1184 dz_str: 1185 string "\tEnabled DZ..." 1186 1187 align 0x4 1188 dz_0: 1189 addq.l &0x1,TESTCTR(%a6) 1190 1191 movm.l DEF_REGS(%pc),&0x3fff 1192 fmovm.x DEF_FPREGS(%pc),&0xff 1193 fmovm.l DEF_FPCREGS(%pc),%fpcr,%fpsr,%fpiar 1194 1195 mov.w &0x0000,ICCR(%a6) 1196 movm.l &0x7fff,IREGS(%a6) 1197 fmovm.x &0xff,IFPREGS(%a6) 1198 fmov.l &0x00000400,%fpcr # enable DZ 1199 fmovm.l %fpcr,%fpsr,%fpiar,IFPCREGS(%a6) 1200 1201 mov.l &0x40000000,DATA+0x0(%a6) 1202 mov.l &0x80000000,DATA+0x4(%a6) 1203 mov.l &0x00000000,DATA+0x8(%a6) 1204 fmovm.x DATA(%a6),&0x80 1205 1206 mov.w &0x0000,%cc 1207 dz_0_pc: 1208 fdiv.b &0x0,%fp0 1209 1210 mov.w %cc,SCCR(%a6) 1211 movm.l &0x7fff,SREGS(%a6) 1212 fmovm.x &0xff,SFPREGS(%a6) 1213 fmovm.l %fpcr,%fpsr,%fpiar,SFPCREGS(%a6) 1214 1215 mov.l &0x40000000,IFPREGS+0x0(%a6) 1216 mov.l &0x80000000,IFPREGS+0x4(%a6) 1217 mov.l &0x00000000,IFPREGS+0x8(%a6) 1218 mov.l &0x02000410,IFPCREGS+0x4(%a6) 1219 lea dz_0_pc(%pc),%a0 1220 mov.l %a0,IFPCREGS+0x8(%a6) 1221 1222 bsr.l chkregs 1223 tst.b %d0 1224 bne.l error 1225 1226 bsr.l chkfpregs 1227 tst.b %d0 1228 bne.l error 1229 1230 clr.l %d0 1231 rts 1232 1233 ##################################################################### 1234 1235 unsupp_str: 1236 string "\tUnimplemented data type/format..." 1237 1238 # an unnormalized number 1239 align 0x4 1240 unsupp_0: 1241 addq.l &0x1,TESTCTR(%a6) 1242 1243 movm.l DEF_REGS(%pc),&0x3fff 1244 fmovm.x DEF_FPREGS(%pc),&0xff 1245 fmovm.l DEF_FPCREGS(%pc),%fpcr,%fpsr,%fpiar 1246 1247 mov.w &0x0000,ICCR(%a6) 1248 movm.l &0x7fff,IREGS(%a6) 1249 fmovm.x &0xff,IFPREGS(%a6) 1250 fmovm.l %fpcr,%fpsr,%fpiar,IFPCREGS(%a6) 1251 1252 mov.l &0xc03f0000,DATA+0x0(%a6) 1253 mov.l &0x00000000,DATA+0x4(%a6) 1254 mov.l &0x00000001,DATA+0x8(%a6) 1255 fmov.b &0x2,%fp0 1256 mov.w &0x0000,%cc 1257 unsupp_0_pc: 1258 fmul.x DATA(%a6),%fp0 1259 1260 mov.w %cc,SCCR(%a6) 1261 movm.l &0x7fff,SREGS(%a6) 1262 fmovm.x &0xff,SFPREGS(%a6) 1263 fmovm.l %fpcr,%fpsr,%fpiar,SFPCREGS(%a6) 1264 1265 mov.l &0xc0010000,IFPREGS+0x0(%a6) 1266 mov.l &0x80000000,IFPREGS+0x4(%a6) 1267 mov.l &0x00000000,IFPREGS+0x8(%a6) 1268 mov.l &0x08000000,IFPCREGS+0x4(%a6) 1269 lea unsupp_0_pc(%pc),%a0 1270 mov.l %a0,IFPCREGS+0x8(%a6) 1271 1272 bsr.l chkregs 1273 tst.b %d0 1274 bne.l error 1275 1276 bsr.l chkfpregs 1277 tst.b %d0 1278 bne.l error 1279 1280 # a denormalized number 1281 unsupp_1: 1282 addq.l &0x1,TESTCTR(%a6) 1283 1284 movm.l DEF_REGS(%pc),&0x3fff 1285 fmovm.x DEF_FPREGS(%pc),&0xff 1286 fmovm.l DEF_FPCREGS(%pc),%fpcr,%fpsr,%fpiar 1287 1288 mov.w &0x0000,ICCR(%a6) 1289 movm.l &0x7fff,IREGS(%a6) 1290 fmovm.x &0xff,IFPREGS(%a6) 1291 fmovm.l %fpcr,%fpsr,%fpiar,IFPCREGS(%a6) 1292 1293 mov.l &0x80000000,DATA+0x0(%a6) 1294 mov.l &0x01000000,DATA+0x4(%a6) 1295 mov.l &0x00000000,DATA+0x8(%a6) 1296 fmov.l &0x7fffffff,%fp0 1297 1298 mov.w &0x0000,%cc 1299 unsupp_1_pc: 1300 fmul.x DATA(%a6),%fp0 1301 1302 mov.w %cc,SCCR(%a6) 1303 movm.l &0x7fff,SREGS(%a6) 1304 fmovm.x &0xff,SFPREGS(%a6) 1305 fmovm.l %fpcr,%fpsr,%fpiar,SFPCREGS(%a6) 1306 1307 mov.l &0x80170000,IFPREGS+0x0(%a6) 1308 mov.l &0xfffffffe,IFPREGS+0x4(%a6) 1309 mov.l &0x00000000,IFPREGS+0x8(%a6) 1310 mov.l &0x08000000,IFPCREGS+0x4(%a6) 1311 lea unsupp_1_pc(%pc),%a0 1312 mov.l %a0,IFPCREGS+0x8(%a6) 1313 1314 bsr.l chkregs 1315 tst.b %d0 1316 bne.l error 1317 1318 bsr.l chkfpregs 1319 tst.b %d0 1320 bne.l error 1321 1322 # packed 1323 unsupp_2: 1324 addq.l &0x1,TESTCTR(%a6) 1325 1326 movm.l DEF_REGS(%pc),&0x3fff 1327 fmovm.x DEF_FPREGS(%pc),&0xff 1328 fmovm.l DEF_FPCREGS(%pc),%fpcr,%fpsr,%fpiar 1329 1330 mov.w &0x0000,ICCR(%a6) 1331 movm.l &0x7fff,IREGS(%a6) 1332 fmovm.x &0xff,IFPREGS(%a6) 1333 fmovm.l %fpcr,%fpsr,%fpiar,IFPCREGS(%a6) 1334 1335 mov.l &0xc1230001,DATA+0x0(%a6) 1336 mov.l &0x23456789,DATA+0x4(%a6) 1337 mov.l &0x12345678,DATA+0x8(%a6) 1338 1339 mov.w &0x0000,%cc 1340 unsupp_2_pc: 1341 fabs.p DATA(%a6),%fp0 1342 1343 mov.w %cc,SCCR(%a6) 1344 movm.l &0x7fff,SREGS(%a6) 1345 fmovm.x &0xff,SFPREGS(%a6) 1346 fmovm.l %fpcr,%fpsr,%fpiar,SFPCREGS(%a6) 1347 1348 mov.l &0x3e660000,IFPREGS+0x0(%a6) 1349 mov.l &0xd0ed23e8,IFPREGS+0x4(%a6) 1350 mov.l &0xd14035bc,IFPREGS+0x8(%a6) 1351 mov.l &0x00000108,IFPCREGS+0x4(%a6) 1352 lea unsupp_2_pc(%pc),%a0 1353 mov.l %a0,IFPCREGS+0x8(%a6) 1354 1355 bsr.l chkregs 1356 tst.b %d0 1357 bne.l error 1358 1359 bsr.l chkfpregs 1360 tst.b %d0 1361 bne.l error 1362 1363 clr.l %d0 1364 rts 1365 1366 ########################################################### 1367 ########################################################### 1368 1369 chkregs: 1370 lea IREGS(%a6),%a0 1371 lea SREGS(%a6),%a1 1372 mov.l &14,%d0 1373 chkregs_loop: 1374 cmp.l (%a0)+,(%a1)+ 1375 bne.l chkregs_error 1376 dbra.w %d0,chkregs_loop 1377 1378 mov.w ICCR(%a6),%d0 1379 mov.w SCCR(%a6),%d1 1380 cmp.w %d0,%d1 1381 bne.l chkregs_error 1382 1383 clr.l %d0 1384 rts 1385 1386 chkregs_error: 1387 movq.l &0x1,%d0 1388 rts 1389 1390 error: 1391 mov.l TESTCTR(%a6),%d1 1392 movq.l &0x1,%d0 1393 rts 1394 1395 chkfpregs: 1396 lea IFPREGS(%a6),%a0 1397 lea SFPREGS(%a6),%a1 1398 mov.l &23,%d0 1399 chkfpregs_loop: 1400 cmp.l (%a0)+,(%a1)+ 1401 bne.l chkfpregs_error 1402 dbra.w %d0,chkfpregs_loop 1403 1404 lea IFPCREGS(%a6),%a0 1405 lea SFPCREGS(%a6),%a1 1406 cmp.l (%a0)+,(%a1)+ 1407 bne.l chkfpregs_error 1408 cmp.l (%a0)+,(%a1)+ 1409 bne.l chkfpregs_error 1410 cmp.l (%a0)+,(%a1)+ 1411 bne.l chkfpregs_error 1412 1413 clr.l %d0 1414 rts 1415 1416 chkfpregs_error: 1417 movq.l &0x1,%d0 1418 rts 1419 1420 DEF_REGS: 1421 long 0xacacacac, 0xacacacac, 0xacacacac, 0xacacacac 1422 long 0xacacacac, 0xacacacac, 0xacacacac, 0xacacacac 1423 1424 long 0xacacacac, 0xacacacac, 0xacacacac, 0xacacacac 1425 long 0xacacacac, 0xacacacac, 0xacacacac, 0xacacacac 1426 1427 DEF_FPREGS: 1428 long 0x7fff0000, 0xffffffff, 0xffffffff 1429 long 0x7fff0000, 0xffffffff, 0xffffffff 1430 long 0x7fff0000, 0xffffffff, 0xffffffff 1431 long 0x7fff0000, 0xffffffff, 0xffffffff 1432 long 0x7fff0000, 0xffffffff, 0xffffffff 1433 long 0x7fff0000, 0xffffffff, 0xffffffff 1434 long 0x7fff0000, 0xffffffff, 0xffffffff 1435 long 0x7fff0000, 0xffffffff, 0xffffffff 1436 1437 DEF_FPCREGS: 1438 long 0x00000000, 0x00000000, 0x00000000 1439 1440 ############################################################ 1441 1442 _print_str: 1443 mov.l %d0,-(%sp) 1444 mov.l (TESTTOP-0x80+0x0,%pc),%d0 1445 pea (TESTTOP-0x80,%pc,%d0) 1446 mov.l 0x4(%sp),%d0 1447 rtd &0x4 1448 1449 _print_num: 1450 mov.l %d0,-(%sp) 1451 mov.l (TESTTOP-0x80+0x4,%pc),%d0 1452 pea (TESTTOP-0x80,%pc,%d0) 1453 mov.l 0x4(%sp),%d0 1454 rtd &0x4 1455 1456 ############################################################
Linux® is a registered trademark of Linus Torvalds in the United States and other countries.
TOMOYO® is a registered trademark of NTT DATA CORPORATION.