mirror of https://github.com/xemu-project/xemu.git
tcg: Simplify how dump_opcount_info() prints
dump_opcount_info() takes an fprintf()-like callback and a FILE * to pass to it. Its only caller hmp_info_opcount() passes monitor_fprintf() and the current monitor cast to FILE *. monitor_fprintf() casts it right back, and is otherwise identical to monitor_printf(). The type-punning is ugly. Drop the callback, and call qemu_printf() instead. Signed-off-by: Markus Armbruster <armbru@redhat.com> Reviewed-by: Dr. David Alan Gilbert <dgilbert@redhat.com> Message-Id: <20190417191805.28198-4-armbru@redhat.com>
This commit is contained in:
parent
ba4912cb0d
commit
d4c51a0af3
|
@ -2333,9 +2333,9 @@ void dump_exec_info(FILE *f, fprintf_function cpu_fprintf)
|
|||
tcg_dump_info(f, cpu_fprintf);
|
||||
}
|
||||
|
||||
void dump_opcount_info(FILE *f, fprintf_function cpu_fprintf)
|
||||
void dump_opcount_info(void)
|
||||
{
|
||||
tcg_dump_op_count(f, cpu_fprintf);
|
||||
tcg_dump_op_count();
|
||||
}
|
||||
|
||||
#else /* CONFIG_USER_ONLY */
|
||||
|
|
|
@ -363,7 +363,7 @@ static inline bool tlb_hit(target_ulong tlb_addr, target_ulong addr)
|
|||
}
|
||||
|
||||
void dump_exec_info(FILE *f, fprintf_function cpu_fprintf);
|
||||
void dump_opcount_info(FILE *f, fprintf_function cpu_fprintf);
|
||||
void dump_opcount_info(void);
|
||||
#endif /* !CONFIG_USER_ONLY */
|
||||
|
||||
int cpu_memory_rw_debug(CPUState *cpu, target_ulong addr,
|
||||
|
|
|
@ -1324,7 +1324,7 @@ static void hmp_info_jit(Monitor *mon, const QDict *qdict)
|
|||
|
||||
static void hmp_info_opcount(Monitor *mon, const QDict *qdict)
|
||||
{
|
||||
dump_opcount_info((FILE *)mon, monitor_fprintf);
|
||||
dump_opcount_info();
|
||||
}
|
||||
#endif
|
||||
|
||||
|
|
|
@ -33,6 +33,7 @@
|
|||
#include "qemu/error-report.h"
|
||||
#include "qemu/cutils.h"
|
||||
#include "qemu/host-utils.h"
|
||||
#include "qemu/qemu-print.h"
|
||||
#include "qemu/timer.h"
|
||||
|
||||
/* Note: the long term plan is to reduce the dependencies on the QEMU
|
||||
|
@ -3768,14 +3769,14 @@ static void tcg_profile_snapshot_table(TCGProfile *prof)
|
|||
tcg_profile_snapshot(prof, false, true);
|
||||
}
|
||||
|
||||
void tcg_dump_op_count(FILE *f, fprintf_function cpu_fprintf)
|
||||
void tcg_dump_op_count(void)
|
||||
{
|
||||
TCGProfile prof = {};
|
||||
int i;
|
||||
|
||||
tcg_profile_snapshot_table(&prof);
|
||||
for (i = 0; i < NB_OPS; i++) {
|
||||
cpu_fprintf(f, "%s %" PRId64 "\n", tcg_op_defs[i].name,
|
||||
qemu_printf("%s %" PRId64 "\n", tcg_op_defs[i].name,
|
||||
prof.table_op_count[i]);
|
||||
}
|
||||
}
|
||||
|
@ -3795,9 +3796,9 @@ int64_t tcg_cpu_exec_time(void)
|
|||
return ret;
|
||||
}
|
||||
#else
|
||||
void tcg_dump_op_count(FILE *f, fprintf_function cpu_fprintf)
|
||||
void tcg_dump_op_count(void)
|
||||
{
|
||||
cpu_fprintf(f, "[TCG profiler not compiled]\n");
|
||||
qemu_printf("[TCG profiler not compiled]\n");
|
||||
}
|
||||
|
||||
int64_t tcg_cpu_exec_time(void)
|
||||
|
|
|
@ -1018,7 +1018,7 @@ int tcg_check_temp_count(void);
|
|||
|
||||
int64_t tcg_cpu_exec_time(void);
|
||||
void tcg_dump_info(FILE *f, fprintf_function cpu_fprintf);
|
||||
void tcg_dump_op_count(FILE *f, fprintf_function cpu_fprintf);
|
||||
void tcg_dump_op_count(void);
|
||||
|
||||
#define TCG_CT_ALIAS 0x80
|
||||
#define TCG_CT_IALIAS 0x40
|
||||
|
|
Loading…
Reference in New Issue