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 /op_string.h | |
parent | 4021dab0594761c939b258cad67275c492b88e4d (diff) | |
download | qemu-33417e7025afa5ea1c38c3c2b2ea53d975b5648b.tar.gz qemu-33417e7025afa5ea1c38c3c2b2ea53d975b5648b.tar.bz2 qemu-33417e7025afa5ea1c38c3c2b2ea53d975b5648b.zip |
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 'op_string.h')
-rw-r--r-- | op_string.h | 150 |
1 files changed, 0 insertions, 150 deletions
diff --git a/op_string.h b/op_string.h index 79bc11e1a7..66b598b23a 100644 --- a/op_string.h +++ b/op_string.h @@ -1,94 +1,4 @@ -void OPPROTO glue(glue(op_movs, SUFFIX), STRING_SUFFIX)(void) -{ - int v, inc; - v = glue(ldu, SUFFIX)(SI_ADDR); - glue(st, SUFFIX)(DI_ADDR, v); - inc = (DF << SHIFT); - INC_SI(); - INC_DI(); -} - -void OPPROTO glue(glue(op_rep_movs, SUFFIX), STRING_SUFFIX)(void) -{ - int v, inc; - inc = (DF << SHIFT); - while (CX != 0) { - v = glue(ldu, SUFFIX)(SI_ADDR); - glue(st, SUFFIX)(DI_ADDR, v); - INC_SI(); - INC_DI(); - DEC_CX(); - } - FORCE_RET(); -} - -void OPPROTO glue(glue(op_stos, SUFFIX), STRING_SUFFIX)(void) -{ - int inc; - glue(st, SUFFIX)(DI_ADDR, EAX); - inc = (DF << SHIFT); - INC_DI(); -} - -void OPPROTO glue(glue(op_rep_stos, SUFFIX), STRING_SUFFIX)(void) -{ - int inc; - inc = (DF << SHIFT); - while (CX != 0) { - glue(st, SUFFIX)(DI_ADDR, EAX); - INC_DI(); - DEC_CX(); - } - FORCE_RET(); -} - -void OPPROTO glue(glue(op_lods, SUFFIX), STRING_SUFFIX)(void) -{ - int v, inc; - v = glue(ldu, SUFFIX)(SI_ADDR); -#if SHIFT == 0 - EAX = (EAX & ~0xff) | v; -#elif SHIFT == 1 - EAX = (EAX & ~0xffff) | v; -#else - EAX = v; -#endif - inc = (DF << SHIFT); - INC_SI(); -} - -/* don't know if it is used */ -void OPPROTO glue(glue(op_rep_lods, SUFFIX), STRING_SUFFIX)(void) -{ - int v, inc; - inc = (DF << SHIFT); - while (CX != 0) { - v = glue(ldu, SUFFIX)(SI_ADDR); -#if SHIFT == 0 - EAX = (EAX & ~0xff) | v; -#elif SHIFT == 1 - EAX = (EAX & ~0xffff) | v; -#else - EAX = v; -#endif - INC_SI(); - DEC_CX(); - } - FORCE_RET(); -} - -void OPPROTO glue(glue(op_scas, SUFFIX), STRING_SUFFIX)(void) -{ - int v, inc; - - v = glue(ldu, SUFFIX)(DI_ADDR); - inc = (DF << SHIFT); - INC_DI(); - CC_SRC = v; - CC_DST = EAX - v; -} - void OPPROTO glue(glue(op_repz_scas, SUFFIX), STRING_SUFFIX)(void) { int v1, v2, inc; @@ -133,18 +43,6 @@ void OPPROTO glue(glue(op_repnz_scas, SUFFIX), STRING_SUFFIX)(void) FORCE_RET(); } -void OPPROTO glue(glue(op_cmps, SUFFIX), STRING_SUFFIX)(void) -{ - int v1, v2, inc; - v1 = glue(ldu, SUFFIX)(SI_ADDR); - v2 = glue(ldu, SUFFIX)(DI_ADDR); - inc = (DF << SHIFT); - INC_SI(); - INC_DI(); - CC_SRC = v2; - CC_DST = v1 - v2; -} - void OPPROTO glue(glue(op_repz_cmps, SUFFIX), STRING_SUFFIX)(void) { int v1, v2, inc; @@ -187,54 +85,6 @@ void OPPROTO glue(glue(op_repnz_cmps, SUFFIX), STRING_SUFFIX)(void) FORCE_RET(); } -void OPPROTO glue(glue(op_outs, SUFFIX), STRING_SUFFIX)(void) -{ - int v, dx, inc; - dx = EDX & 0xffff; - v = glue(ldu, SUFFIX)(SI_ADDR); - glue(cpu_x86_out, SUFFIX)(env, dx, v); - inc = (DF << SHIFT); - INC_SI(); -} - -void OPPROTO glue(glue(op_rep_outs, SUFFIX), STRING_SUFFIX)(void) -{ - int v, dx, inc; - inc = (DF << SHIFT); - dx = EDX & 0xffff; - while (CX != 0) { - v = glue(ldu, SUFFIX)(SI_ADDR); - glue(cpu_x86_out, SUFFIX)(env, dx, v); - INC_SI(); - DEC_CX(); - } - FORCE_RET(); -} - -void OPPROTO glue(glue(op_ins, SUFFIX), STRING_SUFFIX)(void) -{ - int v, dx, inc; - dx = EDX & 0xffff; - v = glue(cpu_x86_in, SUFFIX)(env, dx); - glue(st, SUFFIX)(DI_ADDR, v); - inc = (DF << SHIFT); - INC_DI(); -} - -void OPPROTO glue(glue(op_rep_ins, SUFFIX), STRING_SUFFIX)(void) -{ - int v, dx, inc; - inc = (DF << SHIFT); - dx = EDX & 0xffff; - while (CX != 0) { - v = glue(cpu_x86_in, SUFFIX)(env, dx); - glue(st, SUFFIX)(DI_ADDR, v); - INC_DI(); - DEC_CX(); - } - FORCE_RET(); -} - #undef STRING_SUFFIX #undef SI_ADDR #undef DI_ADDR |