diff options
author | bellard <bellard@c046a42c-6fe2-441c-8c8c-71466251a162> | 2003-08-10 21:47:01 +0000 |
---|---|---|
committer | bellard <bellard@c046a42c-6fe2-441c-8c8c-71466251a162> | 2003-08-10 21:47:01 +0000 |
commit | 33417e7025afa5ea1c38c3c2b2ea53d975b5648b (patch) | |
tree | 6c4ab68c228ac2eb8ec4a40559629fce57480b51 /ops_template.h | |
parent | 4021dab0594761c939b258cad67275c492b88e4d (diff) |
soft mmu support - Memory I/O API - synthetize string instructions
git-svn-id: svn://svn.savannah.nongnu.org/qemu/trunk@354 c046a42c-6fe2-441c-8c8c-71466251a162
Diffstat (limited to 'ops_template.h')
-rw-r--r-- | ops_template.h | 35 |
1 files changed, 35 insertions, 0 deletions
diff --git a/ops_template.h b/ops_template.h index 4595291e78..89480dddbf 100644 --- a/ops_template.h +++ b/ops_template.h @@ -547,6 +547,31 @@ void OPPROTO op_update_bt_cc(void) #define DEC_CX() ECX = (ECX & ~0xffff) | ((ECX - 1) & 0xffff) #include "op_string.h" +void OPPROTO glue(op_movl_T0_Dshift, SUFFIX)(void) +{ + T0 = DF << SHIFT; +} + +void OPPROTO glue(op_string_jz_sub, SUFFIX)(void) +{ + if ((DATA_TYPE)CC_DST == 0) + JUMP_TB(PARAM1, 1, PARAM2); +} + +void OPPROTO glue(op_string_jnz_sub, SUFFIX)(void) +{ + if ((DATA_TYPE)CC_DST != 0) + JUMP_TB(PARAM1, 1, PARAM2); +} + +#if DATA_BITS >= 16 +void OPPROTO glue(op_jz_ecx, SUFFIX)(void) +{ + if ((DATA_TYPE)ECX == 0) + JUMP_TB(PARAM1, 1, PARAM2); +} +#endif + /* port I/O */ void OPPROTO glue(glue(op_out, SUFFIX), _T0_T1)(void) @@ -559,6 +584,16 @@ void OPPROTO glue(glue(op_in, SUFFIX), _T0_T1)(void) T1 = glue(cpu_x86_in, SUFFIX)(env, T0 & 0xffff); } +void OPPROTO glue(glue(op_in, SUFFIX), _DX_T0)(void) +{ + T0 = glue(cpu_x86_in, SUFFIX)(env, EDX & 0xffff); +} + +void OPPROTO glue(glue(op_out, SUFFIX), _DX_T0)(void) +{ + glue(cpu_x86_out, SUFFIX)(env, EDX & 0xffff, T0); +} + #undef DATA_BITS #undef SHIFT_MASK #undef SIGN_MASK |