Changeset 106105 in vbox
- Timestamp:
- Sep 20, 2024 8:10:22 AM (2 months ago)
- Location:
- trunk/src/VBox/ValidationKit/bootsectors
- Files:
-
- 2 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/src/VBox/ValidationKit/bootsectors/bs3-cpu-instr-4-template.mac
r106102 r106105 537 537 EMIT_INSTR_PLUS_ICEBP_C64 vmaxss, XMM8, XMM9, FSxBX 538 538 539 ; 540 ;; [v]maxsd 541 ; 542 EMIT_INSTR_PLUS_ICEBP maxsd, XMM3, XMM4 543 EMIT_INSTR_PLUS_ICEBP maxsd, XMM3, FSxBX 544 EMIT_INSTR_PLUS_ICEBP_C64 maxsd, XMM8, XMM9 545 EMIT_INSTR_PLUS_ICEBP_C64 maxsd, XMM8, FSxBX 546 547 EMIT_INSTR_PLUS_ICEBP vmaxsd, XMM1, XMM6, XMM7 548 EMIT_INSTR_PLUS_ICEBP vmaxsd, XMM1, XMM6, FSxBX 549 EMIT_INSTR_PLUS_ICEBP_C64 vmaxsd, XMM8, XMM9, XMM10 550 EMIT_INSTR_PLUS_ICEBP_C64 vmaxsd, XMM8, XMM9, FSxBX 551 552 539 553 %endif ; BS3_INSTANTIATING_CMN 540 554 -
trunk/src/VBox/ValidationKit/bootsectors/bs3-cpu-instr-4.c32
r106104 r106105 10549 10549 10550 10550 10551 /* 10552 * [V]MAXSD. 10553 */ 10554 BS3_DECL_FAR(uint8_t) bs3CpuInstr4_v_maxsd(uint8_t bMode) 10555 { 10556 static BS3CPUINSTR4_TEST1_VALUES_SD_T const s_aValues[] = 10557 { 10558 /* 10559 * Zero. 10560 */ 10561 /* 0*/{ { /*src2 */ { FP64_0(0), FP64_0(0), FP64_0(0), FP64_0(0) } }, 10562 { /*src1 */ { FP64_0(0), FP64_0(0), FP64_0(0), FP64_0(0) } }, 10563 { /* => */ { FP64_0(0), FP64_0(0), FP64_0(0), FP64_0(0) } }, 10564 /*mxcsr:in */ X86_MXCSR_XCPT_MASK, 10565 /*128:out */ X86_MXCSR_XCPT_MASK, 10566 /*256:out */ X86_MXCSR_XCPT_MASK, 10567 /*xcpt? */ false, false }, 10568 { { /*src2 */ { FP64_0(0), FP64_0(0), FP64_0(0), FP64_0(0) } }, 10569 { /*src1 */ { FP64_0(0), FP64_0(0), FP64_0(0), FP64_0(0) } }, 10570 { /* => */ { FP64_0(0), FP64_0(0), FP64_0(0), FP64_0(0) } }, 10571 /*mxcsr:in */ X86_MXCSR_FZ | X86_MXCSR_DAZ | X86_MXCSR_RC_UP, 10572 /*128:out */ X86_MXCSR_FZ | X86_MXCSR_DAZ | X86_MXCSR_RC_UP, 10573 /*256:out */ X86_MXCSR_FZ | X86_MXCSR_DAZ | X86_MXCSR_RC_UP, 10574 /*xcpt? */ false, false }, 10575 { { /*src2 */ { FP64_0(0), FP64_INF(0), FP64_SNAN(0), FP64_SNAN(0) } }, 10576 { /*src1 */ { FP64_0(0), FP64_INF(1), FP64_QNAN(0), FP64_SNAN(1) } }, 10577 { /* => */ { FP64_0(0), FP64_INF(1), FP64_QNAN(0), FP64_SNAN(1) } }, 10578 /*mxcsr:in */ X86_MXCSR_XCPT_MASK, 10579 /*128:out */ X86_MXCSR_XCPT_MASK, 10580 /*256:out */ X86_MXCSR_XCPT_MASK, 10581 /*xcpt? */ false, false }, 10582 { { /*src2 */ { FP64_0(0), FP64_RAND_V0(0), FP64_RAND_V0(0), FP64_RAND_V0(0) } }, 10583 { /*src1 */ { FP64_0(0), FP64_RAND_V3(0), FP64_RAND_V2(0), FP64_RAND_V1(0) } }, 10584 { /* => */ { FP64_0(0), FP64_RAND_V3(0), FP64_RAND_V2(0), FP64_RAND_V1(0) } }, 10585 /*mxcsr:in */ X86_MXCSR_XCPT_MASK | X86_MXCSR_RC_ZERO, 10586 /*128:out */ X86_MXCSR_XCPT_MASK | X86_MXCSR_RC_ZERO, 10587 /*256:out */ X86_MXCSR_XCPT_MASK | X86_MXCSR_RC_ZERO, 10588 /*xcpt? */ false, false }, 10589 { { /*src2 */ { FP64_0(0), FP64_RAND_V2(0), FP64_RAND_V3(0), FP64_RAND_V1(0) } }, 10590 { /*src1 */ { FP64_0(0), FP64_RAND_V0(1), FP64_RAND_V1(1), FP64_RAND_V2(1) } }, 10591 { /* => */ { FP64_0(0), FP64_RAND_V0(1), FP64_RAND_V1(1), FP64_RAND_V2(1) } }, 10592 /*mxcsr:in */ X86_MXCSR_XCPT_MASK | X86_MXCSR_FZ | X86_MXCSR_RC_ZERO, 10593 /*128:out */ X86_MXCSR_XCPT_MASK | X86_MXCSR_FZ | X86_MXCSR_RC_ZERO, 10594 /*256:out */ X86_MXCSR_XCPT_MASK | X86_MXCSR_FZ | X86_MXCSR_RC_ZERO, 10595 /*xcpt? */ false, false }, 10596 { { /*src2 */ { FP64_0(0), FP64_RAND_V0(0), FP64_RAND_V1(0), FP64_RAND_V3(0) } }, 10597 { /*src1 */ { FP64_0(1), FP64_RAND_V1(0), FP64_RAND_V2(0), FP64_RAND_V3(0) } }, 10598 { /* => */ { FP64_0(0), FP64_RAND_V1(0), FP64_RAND_V2(0), FP64_RAND_V3(0) } }, 10599 /*mxcsr:in */ X86_MXCSR_XCPT_MASK, 10600 /*128:out */ X86_MXCSR_XCPT_MASK, 10601 /*256:out */ X86_MXCSR_XCPT_MASK, 10602 /*xcpt? */ false, false }, 10603 { { /*src2 */ { FP64_0(0), FP64_RAND_V0(1), FP64_RAND_V1(0), FP64_RAND_V2(0) } }, 10604 { /*src1 */ { FP64_0(1), FP64_RAND_V2(1), FP64_RAND_V3(0), FP64_RAND_V0(1) } }, 10605 { /* => */ { FP64_0(0), FP64_RAND_V2(1), FP64_RAND_V3(0), FP64_RAND_V0(1) } }, 10606 /*mxcsr:in */ X86_MXCSR_XCPT_MASK | X86_MXCSR_XCPT_FLAGS | X86_MXCSR_FZ | X86_MXCSR_RC_DOWN, 10607 /*128:out */ X86_MXCSR_XCPT_MASK | X86_MXCSR_XCPT_FLAGS | X86_MXCSR_FZ | X86_MXCSR_RC_DOWN, 10608 /*256:out */ X86_MXCSR_XCPT_MASK | X86_MXCSR_XCPT_FLAGS | X86_MXCSR_FZ | X86_MXCSR_RC_DOWN, 10609 /*xcpt? */ false, false }, 10610 { { /*src2 */ { FP64_0(1), FP64_RAND_V0(1), FP64_RAND_V1(1), FP64_RAND_V3(1) } }, 10611 { /*src1 */ { FP64_0(0), FP64_RAND_V1(0), FP64_RAND_V2(1), FP64_RAND_V3(0) } }, 10612 { /* => */ { FP64_0(1), FP64_RAND_V1(0), FP64_RAND_V2(1), FP64_RAND_V3(0) } }, 10613 /*mxcsr:in */ X86_MXCSR_XCPT_MASK | X86_MXCSR_RC_ZERO, 10614 /*128:out */ X86_MXCSR_XCPT_MASK | X86_MXCSR_RC_ZERO, 10615 /*256:out */ X86_MXCSR_XCPT_MASK | X86_MXCSR_RC_ZERO, 10616 /*xcpt? */ false, false }, 10617 { { /*src2 */ { FP64_0(1), FP64_RAND_V3(1), FP64_RAND_V2(0), FP64_RAND_V1(0) } }, 10618 { /*src1 */ { FP64_0(0), FP64_RAND_V0(1), FP64_RAND_V1(1), FP64_RAND_V3(0) } }, 10619 { /* => */ { FP64_0(1), FP64_RAND_V0(1), FP64_RAND_V1(1), FP64_RAND_V3(0) } }, 10620 /*mxcsr:in */ X86_MXCSR_XCPT_MASK | X86_MXCSR_XCPT_FLAGS | X86_MXCSR_FZ | X86_MXCSR_RC_UP, 10621 /*128:out */ X86_MXCSR_XCPT_MASK | X86_MXCSR_XCPT_FLAGS | X86_MXCSR_FZ | X86_MXCSR_RC_UP, 10622 /*256:out */ X86_MXCSR_XCPT_MASK | X86_MXCSR_XCPT_FLAGS | X86_MXCSR_FZ | X86_MXCSR_RC_UP, 10623 /*xcpt? */ false, false }, 10624 { { /*src2 */ { FP64_0(1), FP64_RAND_V1(1), FP64_RAND_V2(1), FP64_RAND_V3(1) } }, 10625 { /*src1 */ { FP64_0(1), FP64_RAND_V0(1), FP64_RAND_V1(0), FP64_RAND_V2(0) } }, 10626 { /* => */ { FP64_0(1), FP64_RAND_V0(1), FP64_RAND_V1(0), FP64_RAND_V2(0) } }, 10627 /*mxcsr:in */ 0, 10628 /*128:out */ 0, 10629 /*256:out */ 0, 10630 /*xcpt? */ false, false }, 10631 { { /*src2 */ { FP64_0(1), FP64_RAND_V3(1), FP64_RAND_V1(1), FP64_RAND_V0(1) } }, 10632 { /*src1 */ { FP64_0(1), FP64_RAND_V1(0), FP64_RAND_V0(1), FP64_RAND_V2(1) } }, 10633 { /* => */ { FP64_0(1), FP64_RAND_V1(0), FP64_RAND_V0(1), FP64_RAND_V2(1) } }, 10634 /*mxcsr:in */ X86_MXCSR_XCPT_MASK | X86_MXCSR_FZ | X86_MXCSR_RC_UP, 10635 /*128:out */ X86_MXCSR_XCPT_MASK | X86_MXCSR_FZ | X86_MXCSR_RC_UP, 10636 /*256:out */ X86_MXCSR_XCPT_MASK | X86_MXCSR_FZ | X86_MXCSR_RC_UP, 10637 /*xcpt? */ false, false }, 10638 10639 /* 10640 * Infinity. 10641 */ 10642 /*11*/{ { /*src2 */ { FP64_INF(0), FP64_RAND_V3(1), FP64_RAND_V1(1), FP64_RAND_V0(1) } }, 10643 { /*src1 */ { FP64_0(0), FP64_RAND_V1(0), FP64_RAND_V1(1), FP64_RAND_V2(1) } }, 10644 { /* => */ { FP64_INF(0), FP64_RAND_V1(0), FP64_RAND_V1(1), FP64_RAND_V2(1) } }, 10645 /*mxcsr:in */ X86_MXCSR_XCPT_MASK, 10646 /*128:out */ X86_MXCSR_XCPT_MASK, 10647 /*256:out */ X86_MXCSR_XCPT_MASK, 10648 /*xcpt? */ false, false }, 10649 { { /*src2 */ { FP64_0(0), FP64_RAND_V1(1), FP64_RAND_V1(1), FP64_RAND_V3(1) } }, 10650 { /*src1 */ { FP64_INF(0), FP64_RAND_V3(0), FP64_RAND_V2(1), FP64_RAND_V0(1) } }, 10651 { /* => */ { FP64_INF(0), FP64_RAND_V3(0), FP64_RAND_V2(1), FP64_RAND_V0(1) } }, 10652 /*mxcsr:in */ X86_MXCSR_XCPT_MASK | X86_MXCSR_RC_UP, 10653 /*128:out */ X86_MXCSR_XCPT_MASK | X86_MXCSR_RC_UP, 10654 /*256:out */ X86_MXCSR_XCPT_MASK | X86_MXCSR_RC_UP, 10655 /*xcpt? */ false, false }, 10656 { { /*src2 */ { FP64_INF(0), FP64_INF(1), FP64_SNAN(1), FP64_QNAN(1) } }, 10657 { /*src1 */ { FP64_0(0), FP64_RAND_V3(0), FP64_RAND_V2(1), FP64_RAND_V0(1) } }, 10658 { /* => */ { FP64_INF(0), FP64_RAND_V3(0), FP64_RAND_V2(1), FP64_RAND_V0(1) } }, 10659 /*mxcsr:in */ X86_MXCSR_XCPT_MASK | X86_MXCSR_RC_ZERO, 10660 /*128:out */ X86_MXCSR_XCPT_MASK | X86_MXCSR_RC_ZERO, 10661 /*256:out */ X86_MXCSR_XCPT_MASK | X86_MXCSR_RC_ZERO, 10662 /*xcpt? */ false, false }, 10663 { { /*src2 */ { FP64_0(0), FP64_RAND_V2(1), FP64_RAND_V2(1), FP64_RAND_V3(0) } }, 10664 { /*src1 */ { FP64_INF(1), FP64_RAND_V0(0), FP64_RAND_V1(0), FP64_RAND_V0(1) } }, 10665 { /* => */ { FP64_0(0), FP64_RAND_V0(0), FP64_RAND_V1(0), FP64_RAND_V0(1) } }, 10666 /*mxcsr:in */ X86_MXCSR_XCPT_MASK | X86_MXCSR_DAZ | X86_MXCSR_FZ | X86_MXCSR_RC_ZERO, 10667 /*128:out */ X86_MXCSR_XCPT_MASK | X86_MXCSR_DAZ | X86_MXCSR_FZ | X86_MXCSR_RC_ZERO, 10668 /*256:out */ X86_MXCSR_XCPT_MASK | X86_MXCSR_DAZ | X86_MXCSR_FZ | X86_MXCSR_RC_ZERO, 10669 /*xcpt? */ false, false }, 10670 { { /*src2 */ { FP64_INF(0), FP64_RAND_V3(1), FP64_RAND_V3(1), FP64_RAND_V0(1) } }, 10671 { /*src1 */ { FP64_INF(0), FP64_RAND_V1(0), FP64_RAND_V2(1), FP64_RAND_V1(1) } }, 10672 { /* => */ { FP64_INF(0), FP64_RAND_V1(0), FP64_RAND_V2(1), FP64_RAND_V1(1) } }, 10673 /*mxcsr:in */ X86_MXCSR_FZ | X86_MXCSR_RC_UP, 10674 /*128:out */ X86_MXCSR_FZ | X86_MXCSR_RC_UP, 10675 /*256:out */ X86_MXCSR_FZ | X86_MXCSR_RC_UP, 10676 /*xcpt? */ false, false }, 10677 { { /*src2 */ { FP64_INF(0), FP64_RAND_V2(0), FP64_RAND_V3(0), FP64_RAND_V0(0) } }, 10678 { /*src1 */ { FP64_INF(0), FP64_RAND_V0(1), FP64_RAND_V0(1), FP64_RAND_V3(1) } }, 10679 { /* => */ { FP64_INF(0), FP64_RAND_V0(1), FP64_RAND_V0(1), FP64_RAND_V3(1) } }, 10680 /*mxcsr:in */ X86_MXCSR_XCPT_MASK | X86_MXCSR_RC_ZERO, 10681 /*128:out */ X86_MXCSR_XCPT_MASK | X86_MXCSR_RC_ZERO, 10682 /*256:out */ X86_MXCSR_XCPT_MASK | X86_MXCSR_RC_ZERO, 10683 /*xcpt? */ false, false }, 10684 { { /*src2 */ { FP64_INF(1), FP64_RAND_V3(0), FP64_RAND_V2(1), FP64_RAND_V3(0) } }, 10685 { /*src1 */ { FP64_INF(1), FP64_QNAN_V(1, 1), FP64_RAND_V1(1), FP64_RAND_V2(0) } }, 10686 { /* => */ { FP64_INF(1), FP64_QNAN_V(1, 1), FP64_RAND_V1(1), FP64_RAND_V2(0) } }, 10687 /*mxcsr:in */ X86_MXCSR_XCPT_MASK | X86_MXCSR_RC_ZERO, 10688 /*128:out */ X86_MXCSR_XCPT_MASK | X86_MXCSR_RC_ZERO, 10689 /*256:out */ X86_MXCSR_XCPT_MASK | X86_MXCSR_RC_ZERO, 10690 /*xcpt? */ false, false }, 10691 { { /*src2 */ { FP64_INF(1), FP64_RAND_V2(1), FP64_RAND_V1(1), FP64_RAND_V0(1) } }, 10692 { /*src1 */ { FP64_INF(1), FP64_RAND_V0(0), FP64_RAND_V3(1), FP64_RAND_V0(1) } }, 10693 { /* => */ { FP64_INF(1), FP64_RAND_V0(0), FP64_RAND_V3(1), FP64_RAND_V0(1) } }, 10694 /*mxcsr:in */ X86_MXCSR_XCPT_MASK | X86_MXCSR_FZ | X86_MXCSR_RC_UP, 10695 /*128:out */ X86_MXCSR_XCPT_MASK | X86_MXCSR_FZ | X86_MXCSR_RC_UP, 10696 /*256:out */ X86_MXCSR_XCPT_MASK | X86_MXCSR_FZ | X86_MXCSR_RC_UP, 10697 /*xcpt? */ false, false }, 10698 { { /*src2 */ { FP64_INF(1), FP64_RAND_V1(1), FP64_RAND_V3(1), FP64_RAND_V0(1) } }, 10699 { /*src1 */ { FP64_INF(0), FP64_RAND_V1(0), FP64_RAND_V2(1), FP64_RAND_V1(1) } }, 10700 { /* => */ { FP64_INF(0), FP64_RAND_V1(0), FP64_RAND_V2(1), FP64_RAND_V1(1) } }, 10701 /*mxcsr:in */ X86_MXCSR_XCPT_MASK | X86_MXCSR_RC_UP, 10702 /*128:out */ X86_MXCSR_XCPT_MASK | X86_MXCSR_RC_UP, 10703 /*256:out */ X86_MXCSR_XCPT_MASK | X86_MXCSR_RC_UP, 10704 /*xcpt? */ false, false }, 10705 { { /*src2 */ { FP64_INF(1), FP64_RAND_V0(1), FP64_RAND_V2(1), FP64_RAND_V0(1) } }, 10706 { /*src1 */ { FP64_INF(0), FP64_RAND_V0(0), FP64_RAND_V2(0), FP64_RAND_V3(1) } }, 10707 { /* => */ { FP64_INF(0), FP64_RAND_V0(0), FP64_RAND_V2(0), FP64_RAND_V3(1) } }, 10708 /*mxcsr:in */ X86_MXCSR_XCPT_MASK | X86_MXCSR_RC_ZERO, 10709 /*128:out */ X86_MXCSR_XCPT_MASK | X86_MXCSR_RC_ZERO, 10710 /*256:out */ X86_MXCSR_XCPT_MASK | X86_MXCSR_RC_ZERO, 10711 /*xcpt? */ false, false }, 10712 { { /*src2 */ { FP64_INF(0), FP64_RAND_V2(1), FP64_RAND_V3(1), FP64_RAND_V0(1) } }, 10713 { /*src1 */ { FP64_INF(1), FP64_RAND_V2(0), FP64_RAND_V3(0), FP64_RAND_V1(1) } }, 10714 { /* => */ { FP64_INF(0), FP64_RAND_V2(0), FP64_RAND_V3(0), FP64_RAND_V1(1) } }, 10715 /*mxcsr:in */ X86_MXCSR_XCPT_MASK | X86_MXCSR_RC_ZERO, 10716 /*128:out */ X86_MXCSR_XCPT_MASK | X86_MXCSR_RC_ZERO, 10717 /*256:out */ X86_MXCSR_XCPT_MASK | X86_MXCSR_RC_ZERO, 10718 /*xcpt? */ false, false }, 10719 { { /*src2 */ { FP64_INF(0), FP64_RAND_V0(1), FP64_RAND_V2(1), FP64_RAND_V0(1) } }, 10720 { /*src1 */ { FP64_INF(1), FP64_RAND_V0(0), FP64_RAND_V2(0), FP64_RAND_V3(1) } }, 10721 { /* => */ { FP64_INF(0), FP64_RAND_V0(0), FP64_RAND_V2(0), FP64_RAND_V3(1) } }, 10722 /*mxcsr:in */ X86_MXCSR_XCPT_MASK | X86_MXCSR_FZ, 10723 /*128:out */ X86_MXCSR_XCPT_MASK | X86_MXCSR_FZ, 10724 /*256:out */ X86_MXCSR_XCPT_MASK | X86_MXCSR_FZ, 10725 /*xcpt? */ false, false }, 10726 { { /*src2 */ { FP64_INF(0), FP64_RAND_V0(0), FP64_RAND_V2(1), FP64_RAND_V0(1) } }, 10727 { /*src1 */ { FP64_NORM_V0(0), FP64_RAND_V1(1), FP64_RAND_V3(1), FP64_RAND_V1(1) } }, 10728 { /* => */ { FP64_INF(0), FP64_RAND_V1(1), FP64_RAND_V3(1), FP64_RAND_V1(1) } }, 10729 /*mxcsr:in */ X86_MXCSR_XCPT_MASK, 10730 /*128:out */ X86_MXCSR_XCPT_MASK, 10731 /*256:out */ X86_MXCSR_XCPT_MASK, 10732 /*xcpt? */ false, false }, 10733 { { /*src2 */ { FP64_INF(0), FP64_INF(0), FP64_SNAN(1), FP64_INF(1) } }, 10734 { /*src1 */ { FP64_NORM_V3(0), FP64_INF(1), FP64_QNAN(1), FP64_SNAN(1) } }, 10735 { /* => */ { FP64_INF(0), FP64_INF(1), FP64_QNAN(1), FP64_SNAN(1) } }, 10736 /*mxcsr:in */ X86_MXCSR_XCPT_MASK | X86_MXCSR_FZ | X86_MXCSR_RC_DOWN, 10737 /*128:out */ X86_MXCSR_XCPT_MASK | X86_MXCSR_FZ | X86_MXCSR_RC_DOWN, 10738 /*256:out */ X86_MXCSR_XCPT_MASK | X86_MXCSR_FZ | X86_MXCSR_RC_DOWN, 10739 /*xcpt? */ false, false }, 10740 { { /*src2 */ { FP64_NORM_V2(0), FP64_RAND_V3(1), FP64_QNAN(1), FP64_SNAN(1) } }, 10741 { /*src1 */ { FP64_INF(1), FP64_RAND_V2(1), FP64_RAND_V2(1), FP64_RAND_V1(1) } }, 10742 { /* => */ { FP64_NORM_V2(0), FP64_RAND_V2(1), FP64_RAND_V2(1), FP64_RAND_V1(1) } }, 10743 /*mxcsr:in */ X86_MXCSR_XCPT_MASK | X86_MXCSR_FZ | X86_MXCSR_RC_UP, 10744 /*128:out */ X86_MXCSR_XCPT_MASK | X86_MXCSR_FZ | X86_MXCSR_RC_UP, 10745 /*256:out */ X86_MXCSR_XCPT_MASK | X86_MXCSR_FZ | X86_MXCSR_RC_UP, 10746 /*xcpt? */ false, false }, 10747 { { /*src2 */ { FP64_NORM_V2(0), FP64_SNAN_V(0, 1), FP64_RAND_V2(0), FP64_RAND_V3(0) } }, 10748 { /*src1 */ { FP64_INF(0), FP64_RAND_V2(0), FP64_RAND_V1(0), FP64_RAND_V2(1) } }, 10749 { /* => */ { FP64_INF(0), FP64_RAND_V2(0), FP64_RAND_V1(0), FP64_RAND_V2(1) } }, 10750 /*mxcsr:in */ X86_MXCSR_XCPT_MASK | X86_MXCSR_RC_ZERO, 10751 /*128:out */ X86_MXCSR_XCPT_MASK | X86_MXCSR_RC_ZERO, 10752 /*256:out */ X86_MXCSR_XCPT_MASK | X86_MXCSR_RC_ZERO, 10753 /*xcpt? */ false, false }, 10754 /** @todo Normals; Denormals; Invalids. */ 10755 }; 10756 10757 #define PASS_s_aValues RT_ELEMENTS(s_aValues), (BS3CPUINSTR4_TEST1_VALUES_T *)s_aValues 10758 static BS3CPUINSTR4_TEST1_T const s_aTests16[] = 10759 { 10760 { bs3CpuInstr4_maxsd_XMM3_XMM4_icebp_c16, 255, RM_REG, T_SSE2, 3, 3, 4, PASS_s_aValues }, 10761 { bs3CpuInstr4_maxsd_XMM3_FSxBX_icebp_c16, 255, RM_MEM, T_SSE2, 3, 3, 255, PASS_s_aValues }, 10762 10763 { bs3CpuInstr4_vmaxsd_XMM1_XMM6_XMM7_icebp_c16, 255, RM_REG, T_AVX_128, 1, 6, 7, PASS_s_aValues }, 10764 { bs3CpuInstr4_vmaxsd_XMM1_XMM6_FSxBX_icebp_c16, X86_XCPT_AC, RM_MEM, T_AVX_128, 1, 6, 255, PASS_s_aValues }, 10765 }; 10766 static BS3CPUINSTR4_TEST1_T const s_aTests32[] = 10767 { 10768 { bs3CpuInstr4_maxsd_XMM3_XMM4_icebp_c32, 255, RM_REG, T_SSE2, 3, 3, 4, PASS_s_aValues }, 10769 { bs3CpuInstr4_maxsd_XMM3_FSxBX_icebp_c32, 255, RM_MEM, T_SSE2, 3, 3, 255, PASS_s_aValues }, 10770 10771 { bs3CpuInstr4_vmaxsd_XMM1_XMM6_XMM7_icebp_c32, 255, RM_REG, T_AVX_128, 1, 6, 7, PASS_s_aValues }, 10772 { bs3CpuInstr4_vmaxsd_XMM1_XMM6_FSxBX_icebp_c32, X86_XCPT_AC, RM_MEM, T_AVX_128, 1, 6, 255, PASS_s_aValues }, 10773 }; 10774 static BS3CPUINSTR4_TEST1_T const s_aTests64[] = 10775 { 10776 { bs3CpuInstr4_maxsd_XMM3_XMM4_icebp_c64, 255, RM_REG, T_SSE2, 3, 3, 4, PASS_s_aValues }, 10777 { bs3CpuInstr4_maxsd_XMM3_FSxBX_icebp_c64, 255, RM_MEM, T_SSE2, 3, 3, 255, PASS_s_aValues }, 10778 10779 { bs3CpuInstr4_vmaxsd_XMM1_XMM6_XMM7_icebp_c64, 255, RM_REG, T_AVX_128, 1, 6, 7, PASS_s_aValues }, 10780 { bs3CpuInstr4_vmaxsd_XMM1_XMM6_FSxBX_icebp_c64, X86_XCPT_AC, RM_MEM, T_AVX_128, 1, 6, 255, PASS_s_aValues }, 10781 10782 { bs3CpuInstr4_maxsd_XMM8_XMM9_icebp_c64, 255, RM_REG, T_SSE2, 8, 8, 9, PASS_s_aValues }, 10783 { bs3CpuInstr4_maxsd_XMM8_FSxBX_icebp_c64, X86_XCPT_AC, RM_MEM, T_SSE2, 8, 8, 255, PASS_s_aValues }, 10784 10785 { bs3CpuInstr4_vmaxsd_XMM8_XMM9_XMM10_icebp_c64, 255, RM_REG, T_AVX_128, 8, 9, 10, PASS_s_aValues }, 10786 { bs3CpuInstr4_vmaxsd_XMM8_XMM9_FSxBX_icebp_c64, X86_XCPT_AC, RM_MEM, T_AVX_128, 8, 9, 255, PASS_s_aValues }, 10787 }; 10788 #undef PASS_s_aValues 10789 10790 static BS3CPUINSTR4_TEST1_MODE_T const s_aTests[3] = BS3CPUINSTR4_TEST1_MODES_INIT(s_aTests16, s_aTests32, s_aTests64); 10791 unsigned const iTest = BS3CPUINSTR4_TEST_MODES_INDEX(bMode); 10792 return bs3CpuInstr4_WorkerTestType1(bMode, s_aTests[iTest].paTests, s_aTests[iTest].cTests, 10793 g_aXcptConfig3, RT_ELEMENTS(g_aXcptConfig3)); 10794 } 10795 10796 10551 10797 /** 10552 10798 * The 32-bit protected mode main function. … … 10592 10838 { "[v]maxpd", bs3CpuInstr4_v_maxpd, 0 }, 10593 10839 { "[v]maxss", bs3CpuInstr4_v_maxss, 0 }, 10840 { "[v]maxsd", bs3CpuInstr4_v_maxsd, 0 }, 10594 10841 #endif 10595 10842 };
Note:
See TracChangeset
for help on using the changeset viewer.