Based on work from Richard and Thomas. v4 -> v5: - Don't realy on TLB_INVALID_MASK -- Check against tlb_fill_exc and return the exception right away - Handle !CONFIG_USER_ONLY -- Check against haddr -- Properly store vaddr to env->__excp_addr and return PGM_ADDRESSING - Exclude tlb_fill_tec/tlb_fill_exc for CONFIG_USER_ONLY - While at it, tackle r1/r2 indication as well
The ifdeffery in patch #1 is a bit ugly but IMHO but still tolerable. KVM unit tests continue working as expected. David Hildenbrand (1): target/s390x: Store r1/r2 for page-translation exceptions during MVPG Richard Henderson (1): target/s390x: Implement the MVPG condition-code-option bit target/s390x/cpu.h | 5 ++ target/s390x/excp_helper.c | 3 + target/s390x/helper.h | 2 +- target/s390x/insn-data.def | 2 +- target/s390x/mem_helper.c | 146 +++++++++++++++++++++++++++++-------- target/s390x/translate.c | 7 +- 6 files changed, 133 insertions(+), 32 deletions(-) -- 2.29.2