[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: [Qemu-devel] [PATCH 09/20] target/arm: Handle SVE vector length chan
From: |
Richard Henderson |
Subject: |
Re: [Qemu-devel] [PATCH 09/20] target/arm: Handle SVE vector length changes in system mode |
Date: |
Sat, 25 Aug 2018 12:41:35 -0700 |
User-agent: |
Mozilla/5.0 (X11; Linux x86_64; rv:52.0) Gecko/20100101 Thunderbird/52.9.1 |
On 08/17/2018 09:22 AM, Peter Maydell wrote:
>> + /*
>> + * When FP is enabled, but SVE is disabled, the effective len is 0.
>> + * ??? How should sve_exception_el interact with AArch32 state?
>> + * That isn't included in the CheckSVEEnabled pseudocode, so is the
>> + * host kernel required to explicitly disable SVE for an EL using aa32?
>> + */
> I'm not clear what you're asking here. If the EL is AArch32
> then why does it make a difference if SVE is enabled or disabled?
> You can't get at it...
>
>> + old_len = (sve_exception_el(env, old_el)
>> + ? 0 : sve_zcr_len_for_el(env, old_el));
>> + new_len = (sve_exception_el(env, new_el)
>> + ? 0 : sve_zcr_len_for_el(env, new_el));
Yes the registers are inaccessible. But...
It may be that we must produce old_len/new_len == 0 if old_el/new_el is in
32-bit mode, so that the high part of the SVE registers are zeroed.
However, it may be UNDEFINED what happens if the OS switches to an el in 32-bit
mode while CPACR.ZEN == 3. And if so, then there may be no point in adding an
additional test here.
So far I have re-worded the comment as:
* ??? Do we need a conditional for old_el/new_el in aa32 state?
* That isn't included in the CheckSVEEnabled pseudocode, so is the
* host kernel required to explicitly disable SVE for an EL using aa32?
Thoughts on the underlying issue?
r~
- Re: [Qemu-devel] [PATCH 06/20] target/arm: Fix arm_current_el for user-only, (continued)
- [Qemu-devel] [PATCH 09/20] target/arm: Handle SVE vector length changes in system mode, Richard Henderson, 2018/08/09
- [Qemu-devel] [PATCH 10/20] target/arm: Adjust aarch64_cpu_dump_state for system mode SVE, Richard Henderson, 2018/08/09
- [Qemu-devel] [PATCH 11/20] target/arm: Clear unused predicate bits for LD1RQ, Richard Henderson, 2018/08/09
- [Qemu-devel] [PATCH 12/20] target/arm: Rewrite helper_sve_ld1*_r using pages, Richard Henderson, 2018/08/09
- [Qemu-devel] [PATCH 14/20] target/arm: Rewrite helper_sve_st[1234]*_r, Richard Henderson, 2018/08/09