[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: [PATCH 3/7] target/arm: Convert A32 coprocessor insns to decodetree
From: |
Richard Henderson |
Subject: |
Re: [PATCH 3/7] target/arm: Convert A32 coprocessor insns to decodetree |
Date: |
Tue, 4 Aug 2020 19:53:30 -0700 |
User-agent: |
Mozilla/5.0 (X11; Linux x86_64; rv:68.0) Gecko/20100101 Thunderbird/68.10.0 |
On 8/3/20 4:18 AM, Peter Maydell wrote:
> Convert the A32 coprocessor instructions to decodetree.
>
> Note that this corrects an underdecoding: for the 64-bit access case
> (MRRC/MCRR) we did not check that bits [24:21] were 0b0010, so we
> would incorrectly treat LDC/STC as MRRC/MCRR rather than UNDEFing
> them.
>
> The decodetree versions of these insns assume the coprocessor
> is in the range 0..7 or 14..15. This is architecturally sensible
> (as per the comments) and OK in practice for QEMU because the only
> uses of the ARMCPRegInfo infrastructure we have that aren't
> for coprocessors 14 or 15 are the pxa2xx use of coprocessor 6.
> We add an assertion to the define_one_arm_cp_reg_with_opaque()
> function to catch any accidental future attempts to use it to
> define coprocessor registers for invalid coprocessors.
>
> Signed-off-by: Peter Maydell <peter.maydell@linaro.org>
> ---
> target/arm/a32.decode | 19 +++++++++++
> target/arm/helper.c | 29 +++++++++++++++++
> target/arm/translate.c | 74 +++++++++++++++++++++++++++++++++++-------
> 3 files changed, 111 insertions(+), 11 deletions(-)
Reviewed-by: Richard Henderson <richard.henderson@linaro.org>
r~
- [PATCH 0/7] target/arm: copro decode cleanup, Peter Maydell, 2020/08/03
- [PATCH 1/7] target/arm: Pull handling of XScale insns out of disas_coproc_insn(), Peter Maydell, 2020/08/03
- [PATCH 2/7] target/arm: Separate decode from handling of coproc insns, Peter Maydell, 2020/08/03
- [PATCH 3/7] target/arm: Convert A32 coprocessor insns to decodetree, Peter Maydell, 2020/08/03
- Re: [PATCH 3/7] target/arm: Convert A32 coprocessor insns to decodetree,
Richard Henderson <=
- [PATCH 4/7] target/arm: Tidy up disas_arm_insn(), Peter Maydell, 2020/08/03
- [PATCH 5/7] target/arm: Do M-profile NOCP checks early and via decodetree, Peter Maydell, 2020/08/03
- [PATCH 6/7] target/arm: Convert T32 coprocessor insns to decodetree, Peter Maydell, 2020/08/03
- [PATCH 7/7] target/arm: Remove ARCH macro, Peter Maydell, 2020/08/03