From 1b6b029e40c4297ce9c27e0f8b8ae177085c990a Mon Sep 17 00:00:00 2001 From: bellard Date: Sat, 22 Mar 2003 17:31:38 +0000 Subject: basic clone() support git-svn-id: svn://svn.savannah.nongnu.org/qemu/trunk@40 c046a42c-6fe2-441c-8c8c-71466251a162 --- translate-i386.c | 9 +++++++++ 1 file changed, 9 insertions(+) (limited to 'translate-i386.c') diff --git a/translate-i386.c b/translate-i386.c index 5cbaa813ce..b7a7cdc207 100644 --- a/translate-i386.c +++ b/translate-i386.c @@ -1395,6 +1395,10 @@ long disas_insn(DisasContext *s, uint8_t *pc_start) s->aflag = aflag; s->dflag = dflag; + /* lock generation */ + if (prefixes & PREFIX_LOCK) + gen_op_lock(); + /* now check op code */ reswitch: switch(b) { @@ -3153,8 +3157,12 @@ long disas_insn(DisasContext *s, uint8_t *pc_start) default: goto illegal_op; } + /* lock generation */ + if (s->prefix & PREFIX_LOCK) + gen_op_unlock(); return (long)s->pc; illegal_op: + /* XXX: ensure that no lock was generated */ return -1; } @@ -3609,6 +3617,7 @@ int cpu_x86_gen_code(uint8_t *gen_code_buf, int max_code_size, pc += count; } fprintf(logfile, "\n"); + fflush(logfile); } #endif return 0; -- cgit v1.2.3