mirror of
https://github.com/yuzu-emu/unicorn.git
synced 2025-01-11 02:45:32 +00:00
target/arm: Fix AddPAC error indication
The definition of top_bit used in this function is one higher than that used in the Arm ARM psuedo-code, which put the error indication at top_bit - 1 at the wrong place, which meant that it wasn't visible to Auth. Fixing the definition of top_bit requires more changes, because its most common use is for the count of bits in top_bit:bot_bit, which would then need to be computed as top_bit - bot_bit + 1. For now, prefer the minimal fix to the error indication alone. Fixes: 63ff0ca94cb Backports commit 8796fe40dd30cd9ffd3c958906471715c923b341 from qemu
This commit is contained in:
parent
4952920d4d
commit
ce8282d9cd
|
@ -300,7 +300,11 @@ static uint64_t pauth_addpac(CPUARMState *env, uint64_t ptr, uint64_t modifier,
|
|||
*/
|
||||
test = sextract64(ptr, bot_bit, top_bit - bot_bit);
|
||||
if (test != 0 && test != -1) {
|
||||
pac ^= MAKE_64BIT_MASK(top_bit - 1, 1);
|
||||
/*
|
||||
* Note that our top_bit is one greater than the pseudocode's
|
||||
* version, hence "- 2" here.
|
||||
*/
|
||||
pac ^= MAKE_64BIT_MASK(top_bit - 2, 1);
|
||||
}
|
||||
|
||||
/*
|
||||
|
|
Loading…
Reference in a new issue