[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: [PATCH 1/1] target/arm: Split out aa64_va_parameter_tbi, aa64_va_par
From: |
Richard Henderson |
Subject: |
Re: [PATCH 1/1] target/arm: Split out aa64_va_parameter_tbi, aa64_va_parameter_tbid |
Date: |
Fri, 7 Feb 2020 14:30:32 +0000 |
User-agent: |
Mozilla/5.0 (X11; Linux x86_64; rv:68.0) Gecko/20100101 Thunderbird/68.4.1 |
On 2/7/20 2:00 PM, Peter Maydell wrote:
>>
>> + /* Present TBI as a composite with TBID. */
>> + tbi = aa64_va_parameter_tbi(tcr, mmu_idx);
>> + if (!data) {
>> + tbi &= ~aa64_va_parameter_tbid(tcr, mmu_idx);
>> + }
>> + tbi = (tbi >> select) & 1;
>
> ...but aa64_va_parameters() always sets
> select = extract64(va, 55, 1);
> even for the 1-range case, and then we assume in this bit
> of code that we can pull the corresponding bit out of tbi.
>
> Don't we need to either duplicate the bit returned by
> aa64_va_parameter_tbi() in the 1-range case, or else
> only shift tbi by 'select' in the 2-range case ?
I think we need to force select = 0 in the 1-range case, since "select == 1"
makes no sense in that case.
r~