unicorn/qemu
Richard Henderson bdf667fd4e
tcg: Check for overflow via highwater mark
We currently pre-compute an worst case code size for any TB, which
works out to be 122kB. Since the average TB size is near 1kB, this
wastes quite a lot of storage.

Instead, check for overflow in between generating code for each opcode.
The overhead of the check isn't measurable and wastage is minimized.

Backports commit b125f9dc7bd68cd4c57189db4da83b0620b28a72 from qemu
2018-02-17 15:24:00 -05:00
..
crypto Drop unused crypto source files 2018-02-17 15:23:57 -05:00
default-configs arm64eb: add support for ARM64 big endian. 2017-04-24 23:30:01 +08:00
docs docs: clarify memory region lifecycle 2018-02-12 15:11:21 -05:00
fpu softfloat: expand out STATUS macro 2018-02-12 13:43:13 -05:00
hw osdep.h: Move some compiler-specific things to compiler.h 2018-02-17 15:23:28 -05:00
include tcg: Check for overflow via highwater mark 2018-02-17 15:24:00 -05:00
qapi qerror: Clean up QERR_ macros to expand into a single string 2018-02-17 15:23:09 -05:00
qobject qerror: Finally unused, clean up 2018-02-17 15:23:10 -05:00
qom cpu: initialize cpu->exception_index on reset 2018-02-17 15:23:51 -05:00
scripts Save copies of generated qapi files. 2017-01-21 00:30:50 +11:00
target-arm tcg: Remove gen_intermediate_code_pc 2018-02-17 15:23:59 -05:00
target-i386 tcg: Remove gen_intermediate_code_pc 2018-02-17 15:23:59 -05:00
target-m68k target-m68k: Silence unused variable warning 2018-02-17 15:24:00 -05:00
target-mips tcg: Remove gen_intermediate_code_pc 2018-02-17 15:23:59 -05:00
target-sparc tcg: Remove gen_intermediate_code_pc 2018-02-17 15:23:59 -05:00
tcg tcg: Check for overflow via highwater mark 2018-02-17 15:24:00 -05:00
util error: Copy location information in error_copy() 2018-02-17 15:23:53 -05:00
aarch64.h tcg: Remove tcg_gen_code_search_pc 2018-02-17 15:24:00 -05:00
aarch64eb.h tcg: Remove tcg_gen_code_search_pc 2018-02-17 15:24:00 -05:00
accel.c Automated leading tab to spaces conversion. 2017-01-21 12:28:22 +11:00
arm.h tcg: Remove tcg_gen_code_search_pc 2018-02-17 15:24:00 -05:00
armeb.h tcg: Remove tcg_gen_code_search_pc 2018-02-17 15:24:00 -05:00
CODING_STYLE import 2015-08-21 15:04:50 +08:00
configure tcg: Drop ia64 host support 2018-02-04 18:33:02 -05:00
COPYING import 2015-08-21 15:04:50 +08:00
COPYING.LIB import 2015-08-21 15:04:50 +08:00
cpu-exec-common.c cpu-exec: Migrate some generic fns to cpu-exec-common 2018-02-17 15:23:51 -05:00
cpu-exec.c cpu-exec: Migrate some generic fns to cpu-exec-common 2018-02-17 15:23:51 -05:00
cpus.c cpu-exec: Purge all uses of ENV_GET_CPU() 2018-02-17 15:23:18 -05:00
cputlb.c cputlb: Change tlb_set_dirty() arg to cpu 2018-02-17 15:23:52 -05:00
exec.c cputlb: Change tlb_set_dirty() arg to cpu 2018-02-17 15:23:52 -05:00
gen_all_header.sh arm64eb: add support for ARM64 big endian. 2017-04-24 23:30:01 +08:00
glib_compat.c crypto: introduce new module for computing hash digests 2018-02-17 15:23:17 -05:00
HACKING import 2015-08-21 15:04:50 +08:00
header_gen.py tcg: Remove tcg_gen_code_search_pc 2018-02-17 15:24:00 -05:00
ioport.c memory: Define API for MemoryRegionOps to take attrs and return status 2018-02-12 17:17:27 -05:00
LICENSE import 2015-08-21 15:04:50 +08:00
m68k.h tcg: Remove tcg_gen_code_search_pc 2018-02-17 15:24:00 -05:00
Makefile crypto: move crypto objects out of libqemuutil.la 2018-02-17 15:23:50 -05:00
Makefile.objs crypto: move crypto objects out of libqemuutil.la 2018-02-17 15:23:50 -05:00
Makefile.target tcg: split tcg_op_defs to -common 2018-02-17 15:23:51 -05:00
memory.c osdep.h: Move some compiler-specific things to compiler.h 2018-02-17 15:23:28 -05:00
memory_mapping.c memory_mapping: Rework cpu related includes 2018-02-17 15:23:15 -05:00
mips.h tcg: Remove tcg_gen_code_search_pc 2018-02-17 15:24:00 -05:00
mips64.h tcg: Remove tcg_gen_code_search_pc 2018-02-17 15:24:00 -05:00
mips64el.h tcg: Remove tcg_gen_code_search_pc 2018-02-17 15:24:00 -05:00
mipsel.h tcg: Remove tcg_gen_code_search_pc 2018-02-17 15:24:00 -05:00
powerpc.h tcg: Remove tcg_gen_code_search_pc 2018-02-17 15:24:00 -05:00
qapi-schema.json import 2015-08-21 15:04:50 +08:00
qemu-log.c import 2015-08-21 15:04:50 +08:00
qemu-timer.c timer is redundant 2017-01-20 16:46:58 +08:00
rules.mak import 2015-08-21 15:04:50 +08:00
softmmu_template.h softmmu: remove now unused functions 2018-02-17 15:23:38 -05:00
sparc.h tcg: Remove tcg_gen_code_search_pc 2018-02-17 15:24:00 -05:00
sparc64.h tcg: Remove tcg_gen_code_search_pc 2018-02-17 15:24:00 -05:00
tcg-runtime.c platform.h move #3 2017-01-21 00:13:21 +11:00
translate-all.c tcg: Check for overflow via highwater mark 2018-02-17 15:24:00 -05:00
translate-all.h translate-all: remove unnecessary argument to tb_invalidate_phys_range 2018-02-13 09:04:51 -05:00
translate-common.c translate-all: Move tcg_handle_interrupt() to -common 2018-02-17 15:23:51 -05:00
unicorn_common.h This code should now build the x86_x64-softmmu part 2. 2017-01-19 22:50:28 +11:00
VERSION import 2015-08-21 15:04:50 +08:00
vl.c Drop unused crypto source files 2018-02-17 15:23:57 -05:00
vl.h import 2015-08-21 15:04:50 +08:00
x86_64.h tcg: Remove tcg_gen_code_search_pc 2018-02-17 15:24:00 -05:00