Revision 14ce26e7 target-i386/translate-copy.c
b/target-i386/translate-copy.c | ||
---|---|---|
57 | 57 |
int override; /* -1 if no override */ |
58 | 58 |
int prefix; |
59 | 59 |
int aflag, dflag; |
60 |
uint8_t *pc; /* pc = eip + cs_base */
|
|
60 |
target_ulong pc; /* pc = eip + cs_base */
|
|
61 | 61 |
int is_jmp; /* 1 = means jump (stop translation), 2 means CPU |
62 | 62 |
static state change (stop translation) */ |
63 | 63 |
/* code output */ |
... | ... | |
65 | 65 |
uint8_t *gen_code_start; |
66 | 66 |
|
67 | 67 |
/* current block context */ |
68 |
uint8_t *cs_base; /* base of CS segment */
|
|
68 |
target_ulong cs_base; /* base of CS segment */
|
|
69 | 69 |
int pe; /* protected mode */ |
70 | 70 |
int code32; /* 32 bit code segment */ |
71 | 71 |
int f_st; /* currently unused */ |
... | ... | |
277 | 277 |
be stopped. */ |
278 | 278 |
static int disas_insn(DisasContext *s) |
279 | 279 |
{ |
280 |
uint8_t *pc_start, *pc_tmp, *pc_start_insn;
|
|
280 |
target_ulong pc_start, pc_tmp, pc_start_insn;
|
|
281 | 281 |
int b, prefixes, aflag, dflag, next_eip, val; |
282 | 282 |
int ot; |
283 | 283 |
int modrm, mod, op, rm; |
... | ... | |
789 | 789 |
break; |
790 | 790 |
case 0x1e: /* fcomi */ |
791 | 791 |
break; |
792 |
case 0x28: /* ffree sti */ |
|
793 |
break; |
|
792 | 794 |
case 0x2a: /* fst sti */ |
793 | 795 |
break; |
794 | 796 |
case 0x2b: /* fstp sti */ |
... | ... | |
1176 | 1178 |
uint8_t *tc_ptr) |
1177 | 1179 |
{ |
1178 | 1180 |
DisasContext dc1, *dc = &dc1; |
1179 |
uint8_t *pc_insn, *pc_start, *gen_code_end; |
|
1181 |
target_ulong pc_insn, pc_start, cs_base; |
|
1182 |
uint8_t *gen_code_end; |
|
1180 | 1183 |
int flags, ret; |
1181 |
uint8_t *cs_base; |
|
1182 | 1184 |
|
1183 | 1185 |
if (env->nb_breakpoints > 0 || |
1184 | 1186 |
env->singlestep_enabled) |
... | ... | |
1197 | 1199 |
dc->gen_code_start = gen_code_ptr; |
1198 | 1200 |
|
1199 | 1201 |
/* generate intermediate code */ |
1200 |
pc_start = (uint8_t *)tb->pc;
|
|
1201 |
cs_base = (uint8_t *)tb->cs_base;
|
|
1202 |
pc_start = tb->pc; |
|
1203 |
cs_base = tb->cs_base; |
|
1202 | 1204 |
dc->pc = pc_start; |
1203 | 1205 |
dc->cs_base = cs_base; |
1204 | 1206 |
dc->pe = (flags >> HF_PE_SHIFT) & 1; |
... | ... | |
1249 | 1251 |
fprintf(logfile, "IN: COPY: %s fpu=%d\n", |
1250 | 1252 |
lookup_symbol(pc_start), |
1251 | 1253 |
tb->cflags & CF_TB_FP_USED ? 1 : 0); |
1252 |
disas(logfile, pc_start, dc->pc - pc_start, 0, !dc->code32);
|
|
1254 |
target_disas(logfile, pc_start, dc->pc - pc_start, !dc->code32);
|
|
1253 | 1255 |
fprintf(logfile, "\n"); |
1254 | 1256 |
} |
1255 | 1257 |
#endif |
Also available in: Unified diff