mirror of
https://github.com/izzy2lost/xemu.git
synced 2026-07-06 00:20:22 -07:00
target/mips: fix TLB huge page check to use 64-bit shift
Use extract64(entry, psn, 1) instead of (entry & (1 << psn)) to avoid undefined behavior for shifts by 32–63 and to make bit extraction intent explicit. Found by Linux Verification Center (linuxtesting.org) with SVACE. Signed-off-by: Denis Rastyogin <gerben@altlinux.org> Message-ID: <20250814104914.13101-1-gerben@altlinux.org> Signed-off-by: Philippe Mathieu-Daudé <philmd@linaro.org>
This commit is contained in:
committed by
Philippe Mathieu-Daudé
parent
51c3aebfda
commit
1f82ca7234
@@ -652,7 +652,7 @@ static int walk_directory(CPUMIPSState *env, uint64_t *vaddr,
|
||||
return 0;
|
||||
}
|
||||
|
||||
if ((entry & (1 << psn)) && hugepg) {
|
||||
if (extract64(entry, psn, 1) && hugepg) {
|
||||
*huge_page = true;
|
||||
*hgpg_directory_hit = true;
|
||||
entry = get_tlb_entry_layout(env, entry, leaf_mop, pf_ptew);
|
||||
|
||||
Reference in New Issue
Block a user