|
From: | Richard Henderson |
Subject: | Re: [PATCH 1/5] target/riscv: Fix effective address for pointer mask |
Date: | Mon, 27 Mar 2023 20:18:43 -0700 |
User-agent: | Mozilla/5.0 (X11; Linux x86_64; rv:102.0) Gecko/20100101 Thunderbird/102.8.0 |
On 3/27/23 19:48, liweiwei wrote:
On 2023/3/28 10:20, LIU Zhiwei wrote:On 2023/3/27 18:00, Weiwei Li wrote:Since pointer mask works on effective address, and the xl works on the generation of effective address, so xl related calculation should be done before pointer mask.Incorrect. It has been done. When updating the pm_mask, we have already considered the env->xl. You can see it in riscv_cpu_update_mask if (env->xl == MXL_RV32) { env->cur_pmmask = mask & UINT32_MAX; env->cur_pmbase = base & UINT32_MAX; } else { env->cur_pmmask = mask; env->cur_pmbase = base; }Yeah, I missed this part. Then we should ensure cur_pmmask/base is updated when xl changes.
Is that even possible? XL can change on priv level changes (SXL, UXL). r~
[Prev in Thread] | Current Thread | [Next in Thread] |