138 |
values: |
values: |
139 |
i386 - nonzero means 16 bit code |
i386 - nonzero means 16 bit code |
140 |
arm - nonzero means thumb code |
arm - nonzero means thumb code |
141 |
|
ppc - nonzero means little endian |
142 |
other targets - unused |
other targets - unused |
143 |
*/ |
*/ |
144 |
void target_disas(FILE *out, target_ulong code, target_ulong size, int flags) |
void target_disas(FILE *out, target_ulong code, target_ulong size, int flags) |
178 |
disasm_info.mach = bfd_mach_sparc_v9b; |
disasm_info.mach = bfd_mach_sparc_v9b; |
179 |
#endif |
#endif |
180 |
#elif defined(TARGET_PPC) |
#elif defined(TARGET_PPC) |
181 |
if (cpu_single_env->msr[MSR_LE]) |
if (flags) |
182 |
disasm_info.endian = BFD_ENDIAN_LITTLE; |
disasm_info.endian = BFD_ENDIAN_LITTLE; |
183 |
#ifdef TARGET_PPC64 |
#ifdef TARGET_PPC64 |
184 |
disasm_info.mach = bfd_mach_ppc64; |
disasm_info.mach = bfd_mach_ppc64; |
315 |
void term_printf(const char *fmt, ...); |
void term_printf(const char *fmt, ...); |
316 |
|
|
317 |
static int monitor_disas_is_physical; |
static int monitor_disas_is_physical; |
318 |
|
static CPUState *monitor_disas_env; |
319 |
|
|
320 |
static int |
static int |
321 |
monitor_read_memory (memaddr, myaddr, length, info) |
monitor_read_memory (memaddr, myaddr, length, info) |
327 |
if (monitor_disas_is_physical) { |
if (monitor_disas_is_physical) { |
328 |
cpu_physical_memory_rw(memaddr, myaddr, length, 0); |
cpu_physical_memory_rw(memaddr, myaddr, length, 0); |
329 |
} else { |
} else { |
330 |
cpu_memory_rw_debug(cpu_single_env, memaddr,myaddr, length, 0); |
cpu_memory_rw_debug(monitor_disas_env, memaddr,myaddr, length, 0); |
331 |
} |
} |
332 |
return 0; |
return 0; |
333 |
} |
} |
341 |
return 0; |
return 0; |
342 |
} |
} |
343 |
|
|
344 |
void monitor_disas(target_ulong pc, int nb_insn, int is_physical, int flags) |
void monitor_disas(CPUState *env, |
345 |
|
target_ulong pc, int nb_insn, int is_physical, int flags) |
346 |
{ |
{ |
347 |
int count, i; |
int count, i; |
348 |
struct disassemble_info disasm_info; |
struct disassemble_info disasm_info; |
350 |
|
|
351 |
INIT_DISASSEMBLE_INFO(disasm_info, NULL, monitor_fprintf); |
INIT_DISASSEMBLE_INFO(disasm_info, NULL, monitor_fprintf); |
352 |
|
|
353 |
|
monitor_disas_env = env; |
354 |
monitor_disas_is_physical = is_physical; |
monitor_disas_is_physical = is_physical; |
355 |
disasm_info.read_memory_func = monitor_read_memory; |
disasm_info.read_memory_func = monitor_read_memory; |
356 |
|
|