Previous 199869 Revisions Next

r26349 Friday 22nd November, 2013 at 01:35:49 UTC by Barry Rodewald
i386: added TZCNT instruction handling by having it fall back to use BSF, as it would on a CPU that doesn't support TZCNT.
[src/emu/cpu/i386]i386ops.h pentops.c

trunk/src/emu/cpu/i386/pentops.c
r26348r26349
11591159   CYCLES(cpustate,1); // TODO: correct cycle count
11601160}
11611161
1162static void PENTIUMOP(tzcnt_r16_rm16)(i386_state *cpustate)
1163{
1164   // for CPUs that don't support TZCNT, fall back to BSF
1165   i386_bsf_r16_rm16(cpustate);
1166   // TODO: actually implement TZCNT
1167}
1168
1169static void PENTIUMOP(tzcnt_r32_rm32)(i386_state *cpustate)
1170{
1171   // for CPUs that don't support TZCNT, fall back to BSF
1172   i386_bsf_r32_rm32(cpustate);
1173   // TODO: actually implement TZCNT
1174}
1175
11621176INLINE INT8 SaturatedSignedWordToSignedByte(INT16 word)
11631177{
11641178   if (word > 127)
trunk/src/emu/cpu/i386/i386ops.h
r26348r26349
525525   { 0x7E,     OP_3BYTEF3|OP_SSE,          SSEOP(movq_r128_r128m64),       SSEOP(movq_r128_r128m64),   },
526526   { 0x7F,     OP_3BYTEF3|OP_SSE,          SSEOP(movdqu_rm128_r128),       SSEOP(movdqu_rm128_r128),   },
527527   { 0xB8,     OP_3BYTEF3|OP_PENTIUM,      PENTIUMOP(popcnt_r16_rm16),     PENTIUMOP(popcnt_r32_rm32), },
528   { 0xBC,     OP_3BYTEF3|OP_PENTIUM,      PENTIUMOP(tzcnt_r16_rm16),      PENTIUMOP(tzcnt_r32_rm32), },
528529   { 0xC2,     OP_3BYTEF3|OP_SSE,          SSEOP(cmpss_r128_r128m32_i8),   SSEOP(cmpss_r128_r128m32_i8),},
529530   { 0xD6,     OP_3BYTEF3|OP_SSE,          SSEOP(movq2dq_r128_r64),        SSEOP(movq2dq_r128_r64),    },
530531   { 0xE6,     OP_3BYTEF3|OP_SSE,          SSEOP(cvtdq2pd_r128_r128m64),   SSEOP(cvtdq2pd_r128_r128m64)}

Previous 199869 Revisions Next


© 1997-2024 The MAME Team