23 |
23 |
#include <sys/types.h>
|
24 |
24 |
#include <sys/mman.h>
|
25 |
25 |
#endif
|
26 |
|
#include <stdlib.h>
|
27 |
|
#include <stdio.h>
|
28 |
|
#include <stdarg.h>
|
29 |
|
#include <string.h>
|
30 |
|
#include <errno.h>
|
31 |
|
#include <unistd.h>
|
32 |
|
#include <inttypes.h>
|
33 |
26 |
|
|
27 |
#include "qemu-common.h"
|
34 |
28 |
#include "cpu.h"
|
35 |
29 |
#include "exec-all.h"
|
36 |
|
#include "qemu-common.h"
|
37 |
30 |
#include "tcg.h"
|
38 |
31 |
#include "hw/hw.h"
|
39 |
32 |
#include "hw/qdev.h"
|
... | ... | |
4096 |
4089 |
|
4097 |
4090 |
#if !defined(CONFIG_USER_ONLY)
|
4098 |
4091 |
|
4099 |
|
void dump_exec_info(FILE *f,
|
4100 |
|
int (*cpu_fprintf)(FILE *f, const char *fmt, ...))
|
|
4092 |
void dump_exec_info(FILE *f, fprintf_function cpu_fprintf)
|
4101 |
4093 |
{
|
4102 |
4094 |
int i, target_code_size, max_target_code_size;
|
4103 |
4095 |
int direct_jmp_count, direct_jmp2_count, cross_page;
|
... | ... | |
4124 |
4116 |
}
|
4125 |
4117 |
/* XXX: avoid using doubles ? */
|
4126 |
4118 |
cpu_fprintf(f, "Translation buffer state:\n");
|
4127 |
|
cpu_fprintf(f, "gen code size %ld/%ld\n",
|
|
4119 |
cpu_fprintf(f, "gen code size %td/%ld\n",
|
4128 |
4120 |
code_gen_ptr - code_gen_buffer, code_gen_buffer_max_size);
|
4129 |
4121 |
cpu_fprintf(f, "TB count %d/%d\n",
|
4130 |
4122 |
nb_tbs, code_gen_max_blocks);
|
4131 |
4123 |
cpu_fprintf(f, "TB avg target size %d max=%d bytes\n",
|
4132 |
4124 |
nb_tbs ? target_code_size / nb_tbs : 0,
|
4133 |
4125 |
max_target_code_size);
|
4134 |
|
cpu_fprintf(f, "TB avg host size %d bytes (expansion ratio: %0.1f)\n",
|
|
4126 |
cpu_fprintf(f, "TB avg host size %td bytes (expansion ratio: %0.1f)\n",
|
4135 |
4127 |
nb_tbs ? (code_gen_ptr - code_gen_buffer) / nb_tbs : 0,
|
4136 |
4128 |
target_code_size ? (double) (code_gen_ptr - code_gen_buffer) / target_code_size : 0);
|
4137 |
4129 |
cpu_fprintf(f, "cross page TB count %d (%d%%)\n",
|