target/mips: Abstract mmu_idx from hflags
authorJames Hogan <james.hogan@imgtec.com>
Tue, 18 Jul 2017 11:55:54 +0000 (12:55 +0100)
committerYongbok Kim <yongbok.kim@imgtec.com>
Thu, 20 Jul 2017 21:42:26 +0000 (22:42 +0100)
commitb0fc6003224543d2bdb172eca752656a6223e4a1
tree174e0757fcf32dd89fe80f47f6e29c38b8d84dd8
parent9fbf4a58c90183b30bb2c8ad971ccce7e6716a16
target/mips: Abstract mmu_idx from hflags

The MIPS mmu_idx is sometimes calculated from hflags without an env
pointer available as cpu_mmu_index() requires.

Create a common hflags_mmu_index() for the purpose of this calculation
which can operate on any hflags, not just with an env pointer, and
update cpu_mmu_index() itself and gen_intermediate_code() to use it.

Also update debug_post_eret() and helper_mtc0_status() to log the MMU
mode with the status change (SM, UM, or nothing for kernel mode) based
on cpu_mmu_index() rather than directly testing hflags.

This will also allow the logic to be more easily updated when a new MMU
mode is added.

Signed-off-by: James Hogan <james.hogan@imgtec.com>
Reviewed-by: Yongbok Kim <yongbok.kim@imgtec.com>
Cc: Aurelien Jarno <aurelien@aurel32.net>
Signed-off-by: Yongbok Kim <yongbok.kim@imgtec.com>
target/mips/cpu.h
target/mips/op_helper.c
target/mips/translate.c