target-arm: Fix incorrect arithmetic constructing short-form PAR for ATS ops
Correct some obviously nonsensical bit manipulation spotted by Coverity when constructing the short-form PAR value for ATS operations. Signed-off-by: Peter Maydell <peter.maydell@linaro.org> Message-id: 1392659525-8335-1-git-send-email-peter.maydell@linaro.org
This commit is contained in:
parent
cba933b225
commit
775fda92a1
@ -1031,8 +1031,8 @@ static void ats_write(CPUARMState *env, const ARMCPRegInfo *ri, uint64_t value)
|
||||
env->cp15.c7_par = phys_addr & 0xfffff000;
|
||||
}
|
||||
} else {
|
||||
env->cp15.c7_par = ((ret & (10 << 1)) >> 5) |
|
||||
((ret & (12 << 1)) >> 6) |
|
||||
env->cp15.c7_par = ((ret & (1 << 10)) >> 5) |
|
||||
((ret & (1 << 12)) >> 6) |
|
||||
((ret & 0xf) << 1) | 1;
|
||||
}
|
||||
env->cp15.c7_par_hi = 0;
|
||||
|
Loading…
Reference in New Issue
Block a user