qemu/target-s390x
Thomas Huth f8f84e93ab s390x/mmu: Fix the handling of the table levels
The current code used a wrong and very confusing way of dealing with
the table levels by introducing a "fake level above current". However,
the real problem was simply that the checks for the region/segment
invalid bit and for the matching region/segment level was done at the
wrong spot in the code - it has to be done after the first table entry
has been looked up instead (e.g. there is also no "invalid" bit in the
ASCE itself and the current "level" has to be the same as the level in
the entry that we just looked up).
Also the entries for the segment table are quite a bit different compared
to the region table entries. So this patch moves the related code into the
function mmu_translate_segment() to make it clear at which table level we
currently are and to get rid of the ugly switch-statement in the function
mmu_translate_region().

Signed-off-by: Thomas Huth <thuth@linux.vnet.ibm.com>
Signed-off-by: Jens Freimann <jfrei@linux.vnet.ibm.com>
Signed-off-by: Christian Borntraeger <borntraeger@de.ibm.com>
2015-02-18 09:37:14 +01:00
..
arch_dump.c target-s390x: Add missing 'static' and 'const' attributes 2014-03-27 19:22:48 +04:00
cc_helper.c target-s390x: fix and optimize slb* and slbg* computation of carry/borrow flag 2015-02-03 12:27:05 -08:00
cpu-qom.h s390x/migration: migrate CPU state 2014-10-10 13:31:51 +02:00
cpu.c s390x/migration: migrate CPU state 2014-10-10 13:31:51 +02:00
cpu.h s390x/mmu: Move mmu_translate() and friends to separate file 2015-02-18 09:36:38 +01:00
fpu_helper.c softmmu: introduce cpu_ldst.h 2014-06-05 16:10:33 +02:00
gdbstub.c s390x/gdb: coding style fixes 2014-09-01 09:45:19 +02:00
helper.c s390x/mmu: Move mmu_translate() and friends to separate file 2015-02-18 09:36:38 +01:00
helper.h target-s390: Implement LURA, LURAG, STURG 2015-02-03 12:06:37 -08:00
insn-data.def target-s390: Implement ECAG 2015-02-03 12:06:37 -08:00
insn-format.def target-s390: Add format based disassassmbly infrastructure 2013-01-05 12:00:27 -08:00
int_helper.c tcg: Invert the inclusion of helper.h 2014-05-28 09:33:54 -07:00
interrupt.c s390x: Fix sclp console input 2014-11-05 12:01:28 +01:00
ioinst.c s390: Add PCI bus support 2015-01-12 10:14:04 +01:00
ioinst.h s390: Add PCI bus support 2015-01-12 10:14:04 +01:00
kvm.c s390x/ipl: drop reipl parameters on resets 2015-02-13 16:14:09 +01:00
machine.c s390x/migration: migrate CPU state 2014-10-10 13:31:51 +02:00
Makefile.objs s390x/mmu: Move mmu_translate() and friends to separate file 2015-02-18 09:36:38 +01:00
mem_helper.c target-s390x: support OC and NC in the EX instruction 2015-02-03 12:27:05 -08:00
misc_helper.c s390x/ipl: support diagnose 308 subcodes 5 and 6 2015-02-13 16:14:09 +01:00
mmu_helper.c s390x/mmu: Fix the handling of the table levels 2015-02-18 09:37:14 +01:00
translate.c tcg: Introduce tcg_op_buf_count and tcg_op_buf_full 2015-02-12 21:21:38 -08:00