| 611 | } |
| 612 | |
| 613 | void testRegSseImm8(U8 preOp1, U8 op, U64 value1l, U64 value1h, U32 value2, U32 result, U8 imm8) { |
| 614 | for (U8 m = 0; m < 8; m++) { |
| 615 | for (U8 from = 0; from < 8; from++) { |
| 616 | initSseTest(); |
| 617 | loadSSE(from, 0, value1l, value1h); |
| 618 | for (int i = 0; i < 8; i++) { |
| 619 | cpu->reg[from].u32 = DEFAULT; |
| 620 | } |
| 621 | cpu->reg[m].u32 = value2; |
| 622 | if (preOp1) { |
| 623 | pushCode8(preOp1); |
| 624 | } |
| 625 | pushCode8(0x0f); |
| 626 | pushCode8(op); |
| 627 | pushCode8(0xC0 | (m << 3) | from); |
| 628 | pushCode8(imm8); |
| 629 | runTestCPU(); |
| 630 | if (cpu->reg[m].u32 != result) { |
| 631 | failed("sse failed"); |
| 632 | } |
| 633 | } |
| 634 | } |
| 635 | } |
| 636 | |
| 637 | void testSseReg32(U8 preOp1, U8 preOp2, U8 op, U64 value1l, U64 value1h, U32 value2, U64 xmmResultl, U64 xmmResulth) { |
| 638 | for (U8 m=0;m<8;m++) { |
no test coverage detected