547 |
#define DEC_CX() ECX = (ECX & ~0xffff) | ((ECX - 1) & 0xffff) |
#define DEC_CX() ECX = (ECX & ~0xffff) | ((ECX - 1) & 0xffff) |
548 |
#include "op_string.h" |
#include "op_string.h" |
549 |
|
|
550 |
|
void OPPROTO glue(op_movl_T0_Dshift, SUFFIX)(void) |
551 |
|
{ |
552 |
|
T0 = DF << SHIFT; |
553 |
|
} |
554 |
|
|
555 |
|
void OPPROTO glue(op_string_jz_sub, SUFFIX)(void) |
556 |
|
{ |
557 |
|
if ((DATA_TYPE)CC_DST == 0) |
558 |
|
JUMP_TB(PARAM1, 1, PARAM2); |
559 |
|
} |
560 |
|
|
561 |
|
void OPPROTO glue(op_string_jnz_sub, SUFFIX)(void) |
562 |
|
{ |
563 |
|
if ((DATA_TYPE)CC_DST != 0) |
564 |
|
JUMP_TB(PARAM1, 1, PARAM2); |
565 |
|
} |
566 |
|
|
567 |
|
#if DATA_BITS >= 16 |
568 |
|
void OPPROTO glue(op_jz_ecx, SUFFIX)(void) |
569 |
|
{ |
570 |
|
if ((DATA_TYPE)ECX == 0) |
571 |
|
JUMP_TB(PARAM1, 1, PARAM2); |
572 |
|
} |
573 |
|
#endif |
574 |
|
|
575 |
/* port I/O */ |
/* port I/O */ |
576 |
|
|
577 |
void OPPROTO glue(glue(op_out, SUFFIX), _T0_T1)(void) |
void OPPROTO glue(glue(op_out, SUFFIX), _T0_T1)(void) |
584 |
T1 = glue(cpu_x86_in, SUFFIX)(env, T0 & 0xffff); |
T1 = glue(cpu_x86_in, SUFFIX)(env, T0 & 0xffff); |
585 |
} |
} |
586 |
|
|
587 |
|
void OPPROTO glue(glue(op_in, SUFFIX), _DX_T0)(void) |
588 |
|
{ |
589 |
|
T0 = glue(cpu_x86_in, SUFFIX)(env, EDX & 0xffff); |
590 |
|
} |
591 |
|
|
592 |
|
void OPPROTO glue(glue(op_out, SUFFIX), _DX_T0)(void) |
593 |
|
{ |
594 |
|
glue(cpu_x86_out, SUFFIX)(env, EDX & 0xffff, T0); |
595 |
|
} |
596 |
|
|
597 |
#undef DATA_BITS |
#undef DATA_BITS |
598 |
#undef SHIFT_MASK |
#undef SHIFT_MASK |
599 |
#undef SIGN_MASK |
#undef SIGN_MASK |