|
@@ -339,17 +339,9 @@ static uint64_t pauth_addpac(CPUARMState *env, uint64_t ptr, uint64_t modifier,
|
|
return pac | ext | ptr;
|
|
return pac | ext | ptr;
|
|
}
|
|
}
|
|
|
|
|
|
-static uint64_t pauth_ptr_mask_internal(ARMVAParameters param)
|
|
|
|
-{
|
|
|
|
- int bot_pac_bit = 64 - param.tsz;
|
|
|
|
- int top_pac_bit = 64 - 8 * param.tbi;
|
|
|
|
-
|
|
|
|
- return MAKE_64BIT_MASK(bot_pac_bit, top_pac_bit - bot_pac_bit);
|
|
|
|
-}
|
|
|
|
-
|
|
|
|
static uint64_t pauth_original_ptr(uint64_t ptr, ARMVAParameters param)
|
|
static uint64_t pauth_original_ptr(uint64_t ptr, ARMVAParameters param)
|
|
{
|
|
{
|
|
- uint64_t mask = pauth_ptr_mask_internal(param);
|
|
|
|
|
|
+ uint64_t mask = pauth_ptr_mask(param);
|
|
|
|
|
|
/* Note that bit 55 is used whether or not the regime has 2 ranges. */
|
|
/* Note that bit 55 is used whether or not the regime has 2 ranges. */
|
|
if (extract64(ptr, 55, 1)) {
|
|
if (extract64(ptr, 55, 1)) {
|
|
@@ -359,14 +351,6 @@ static uint64_t pauth_original_ptr(uint64_t ptr, ARMVAParameters param)
|
|
}
|
|
}
|
|
}
|
|
}
|
|
|
|
|
|
-uint64_t pauth_ptr_mask(CPUARMState *env, uint64_t ptr, bool data)
|
|
|
|
-{
|
|
|
|
- ARMMMUIdx mmu_idx = arm_stage1_mmu_idx(env);
|
|
|
|
- ARMVAParameters param = aa64_va_parameters(env, ptr, mmu_idx, data);
|
|
|
|
-
|
|
|
|
- return pauth_ptr_mask_internal(param);
|
|
|
|
-}
|
|
|
|
-
|
|
|
|
static uint64_t pauth_auth(CPUARMState *env, uint64_t ptr, uint64_t modifier,
|
|
static uint64_t pauth_auth(CPUARMState *env, uint64_t ptr, uint64_t modifier,
|
|
ARMPACKey *key, bool data, int keynumber)
|
|
ARMPACKey *key, bool data, int keynumber)
|
|
{
|
|
{
|