| 821 |
code = emit_x86_instruction(compiler, 1, dst_r, 0, src, srcw); |
code = emit_x86_instruction(compiler, 1, dst_r, 0, src, srcw); |
| 822 |
FAIL_IF(!code); |
FAIL_IF(!code); |
| 823 |
*code++ = 0x63; |
*code++ = 0x63; |
| 824 |
} |
} else if (dst_r == src) { |
| 825 |
else { |
compiler->mode32 = 0; |
| 826 |
if (dst_r == src) { |
code = emit_x86_instruction(compiler, 1 | EX86_SHIFT_INS, SLJIT_IMM, 32, dst, 0); |
| 827 |
compiler->mode32 = 1; |
FAIL_IF(!code); |
| 828 |
code = emit_x86_instruction(compiler, 1, TMP_REGISTER, 0, src, 0); |
*code |= 0x4 << 3; |
| 829 |
FAIL_IF(!code); |
code = emit_x86_instruction(compiler, 1 | EX86_SHIFT_INS, SLJIT_IMM, 32, dst, 0); |
| 830 |
*code++ = 0x8b; |
FAIL_IF(!code); |
| 831 |
compiler->mode32 = 0; |
*code |= 0x7 << 3; |
| 832 |
} |
} else { |
| 833 |
/* xor reg, reg. */ |
/* xor reg, reg. */ |
| 834 |
code = emit_x86_instruction(compiler, 1, dst_r, 0, dst_r, 0); |
code = emit_x86_instruction(compiler, 1, dst_r, 0, dst_r, 0); |
| 835 |
FAIL_IF(!code); |
FAIL_IF(!code); |
| 836 |
*code++ = 0x33; |
*code++ = 0x33; |
| 837 |
if (dst_r != src) { |
compiler->mode32 = 1; |
| 838 |
compiler->mode32 = 1; |
code = emit_x86_instruction(compiler, 1, dst_r, 0, src, srcw); |
| 839 |
code = emit_x86_instruction(compiler, 1, dst_r, 0, src, srcw); |
FAIL_IF(!code); |
| 840 |
FAIL_IF(!code); |
*code++ = 0x8b; |
| 841 |
*code++ = 0x8b; |
compiler->mode32 = 0; |
|
compiler->mode32 = 0; |
|
|
} |
|
|
else { |
|
|
compiler->mode32 = 1; |
|
|
code = emit_x86_instruction(compiler, 1, src, 0, TMP_REGISTER, 0); |
|
|
FAIL_IF(!code); |
|
|
*code++ = 0x8b; |
|
|
compiler->mode32 = 0; |
|
|
} |
|
| 842 |
} |
} |
| 843 |
} |
} |
| 844 |
|
|