mirror of
https://github.com/Motorhead1991/qemu.git
synced 2025-08-05 16:53:55 -06:00
target/loongarch: Separate the hardware flags into MMU index and PLV
Regarding the patchset v3 has been merged into main line, and not
approved, this patch updates to patchset v4.
Fixes: b4bda200
("target/loongarch: Adjust the layout of hardware flags bit fields")
Link: https://lists.nongnu.org/archive/html/qemu-devel/2022-11/msg00808.html
Reviewed-by: Richard Henderson <richard.henderson@linaro.org>
Signed-off-by: Rui Wang <wangrui@loongson.cn>
Message-Id: <20221107024526.702297-2-wangrui@loongson.cn>
Signed-off-by: Song Gao <gaosong@loongson.cn>
This commit is contained in:
parent
466e81ff12
commit
c8885b8839
5 changed files with 18 additions and 16 deletions
|
@ -374,21 +374,21 @@ struct LoongArchCPUClass {
|
|||
* 0 for kernel mode, 3 for user mode.
|
||||
* Define an extra index for DA(direct addressing) mode.
|
||||
*/
|
||||
#define MMU_KERNEL_IDX 0
|
||||
#define MMU_USER_IDX 3
|
||||
#define MMU_DA_IDX 4
|
||||
#define MMU_PLV_KERNEL 0
|
||||
#define MMU_PLV_USER 3
|
||||
#define MMU_IDX_KERNEL MMU_PLV_KERNEL
|
||||
#define MMU_IDX_USER MMU_PLV_USER
|
||||
#define MMU_IDX_DA 4
|
||||
|
||||
static inline int cpu_mmu_index(CPULoongArchState *env, bool ifetch)
|
||||
{
|
||||
#ifdef CONFIG_USER_ONLY
|
||||
return MMU_USER_IDX;
|
||||
return MMU_IDX_USER;
|
||||
#else
|
||||
uint8_t pg = FIELD_EX64(env->CSR_CRMD, CSR_CRMD, PG);
|
||||
|
||||
if (!pg) {
|
||||
return MMU_DA_IDX;
|
||||
if (FIELD_EX64(env->CSR_CRMD, CSR_CRMD, PG)) {
|
||||
return FIELD_EX64(env->CSR_CRMD, CSR_CRMD, PLV);
|
||||
}
|
||||
return FIELD_EX64(env->CSR_CRMD, CSR_CRMD, PLV);
|
||||
return MMU_IDX_DA;
|
||||
#endif
|
||||
}
|
||||
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue