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