| 2723 | } |
| 2724 | |
| 2725 | void testFILD() { |
| 2726 | U64 data = 0x123456789abcdef0l; |
| 2727 | |
| 2728 | #if defined (BOXEDWINE_MSVC) && !defined (BOXEDWINE_64) |
| 2729 | { |
| 2730 | struct FSaveState state; |
| 2731 | __asm { |
| 2732 | finit; |
| 2733 | fild data; |
| 2734 | fsave[state]; |
| 2735 | } |
| 2736 | assertTrue(state.fsw == 0x3800); |
| 2737 | assertTrue(state.st[1].q == data); |
| 2738 | } |
| 2739 | #endif |
| 2740 | newInstruction(0); |
| 2741 | fpu_init(); |
| 2742 | fild64(data, 0); |
| 2743 | runTestCPU(); |
| 2744 | assertTrue(cpu->fpu.GetTop() == 7); |
| 2745 | U64 low = 0; |
| 2746 | U64 high = 0; |
| 2747 | cpu->fpu.ST80(cpu->fpu.STV(1), &low, &high); |
| 2748 | assertTrue(low == data); |
| 2749 | assertTrue(cpu->fpu.SW() == 0x3800); |
| 2750 | } |
| 2751 | |
| 2752 | void testFILD_I16() { |
| 2753 | S16 data = -10235; |
no test coverage detected