qemu-e2k/target-s390x
Sergey Fedorov 5b053a4a28 tcg: Clean up direct block chaining safety checks
We don't take care of direct jumps when address mapping changes. Thus we
must be sure to generate direct jumps so that they always keep valid
even if address mapping changes. Luckily, we can only allow to execute a
TB if it was generated from the pages which match with current mapping.

Document tcg_gen_goto_tb() declaration and note the reason for
destination PC limitations.

Some targets with variable length instructions allow TB to straddle a
page boundary. However, we make sure that both of TB pages match the
current address mapping when looking up TBs. So it is safe to do direct
jumps into the both pages. Correct the checks for some of those targets.

Given that, we can safely patch a TB which spans two pages. Remove the
unnecessary check in cpu_exec() and allow such TBs to be patched.

Signed-off-by: Sergey Fedorov <serge.fdrv@gmail.com>
Signed-off-by: Sergey Fedorov <sergey.fedorov@linaro.org>
Reviewed-by: Alex Bennée <alex.bennee@linaro.org>
Signed-off-by: Richard Henderson <rth@twiddle.net>
2016-05-12 14:06:41 -10:00
..
Makefile.objs s390x/mmu: Move mmu_translate() and friends to separate file 2015-02-18 09:36:38 +01:00
arch_dump.c s390: Clean up includes 2016-01-29 15:07:22 +00:00
cc_helper.c s390: Clean up includes 2016-01-29 15:07:22 +00:00
cpu-qom.h s390x/cpu: Add error handling to cpu creation 2016-03-10 10:37:15 +01:00
cpu.c util: move declarations out of qemu-common.h 2016-03-22 22:20:17 +01:00
cpu.h tb: consistently use uint32_t for tb->flags 2016-05-12 14:06:40 -10:00
fpu_helper.c s390: Clean up includes 2016-01-29 15:07:22 +00:00
gdbstub.c s390: Clean up includes 2016-01-29 15:07:22 +00:00
helper.c include/qemu/osdep.h: Don't include qapi/error.h 2016-03-22 22:20:15 +01:00
helper.h target-s390x: PER instruction-fetch event support 2015-06-17 12:40:52 +02:00
insn-data.def target-s390x: wire up I/O instructions in TCG mode 2015-06-17 12:40:50 +02:00
insn-format.def target-s390: Add format based disassassmbly infrastructure 2013-01-05 12:00:27 -08:00
int_helper.c s390: Clean up includes 2016-01-29 15:07:22 +00:00
interrupt.c s390x: remove {kvm_}s390_virtio_irq() 2016-03-01 12:15:28 +01:00
ioinst.c s390: Clean up includes 2016-01-29 15:07:22 +00:00
ioinst.h s390/ioinst: fix IO_INT_WORD_ISC macro 2015-06-17 12:40:50 +02:00
kvm.c s390x: remove {kvm_}s390_virtio_irq() 2016-03-01 12:15:28 +01:00
machine.c s390: Clean up includes 2016-01-29 15:07:22 +00:00
mem_helper.c s390: Clean up includes 2016-01-29 15:07:22 +00:00
misc_helper.c s390: Clean up includes 2016-01-29 15:07:22 +00:00
mmu_helper.c s390x: fix debug statement in trigger_page_fault() 2016-03-01 12:15:28 +01:00
translate.c tcg: Clean up direct block chaining safety checks 2016-05-12 14:06:41 -10:00