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~