|
From: | Richard Henderson |
Subject: | Re: [PATCH v3 22/51] target/arm: Trap AdvSIMD usage when Streaming SVE is active |
Date: | Fri, 24 Jun 2022 13:34:55 -0700 |
User-agent: | Mozilla/5.0 (X11; Linux x86_64; rv:91.0) Gecko/20100101 Thunderbird/91.9.1 |
On 6/24/22 08:30, Peter Maydell wrote:
So the thing that worries me about structuring this this way is that the SME supplement appendix includes this caution: # The instruction encoding tables in this section [...] will # require correction if subsequent versions of the A64 ISA # add new instructions which overlap with these encodings. My guess (based on how the H.a Arm ARM has incorporated SME) is that these tables aren't going to be included in the Arm ARM and updated going forward. Instead the behaviour will be documented based on whether (existing and new) instructions call CheckNonStreamingSVEEnabled() or CheckSVEEnabled() in their pseudocode.
I agree that this would be cleaner and more correct long-term.
So I'm a bit uncertain about how awkward it's going to be in future to maintain this transliteration of the SME supplement tables into decodetree: we might find that we have to look at new instructions and kind of reverse-engineer back out any required changes to the tables here, rather than simply "write the trans_ function for the new insn, looking at the pseudocode to see which _access_check() function it should be calling"...
I thought about this, and if it were simply a matter of annotating the trans_* functions within translate-sve.c, I would have done it. But I would need to adjust A64 AdvSIMD as well, which is still done with the by-hand decoder.
Can we use this solution in the short term, and fix up advsimd while coverting it to decodetree? I'm more and more convinced we'll want this sooner than later.
r~
[Prev in Thread] | Current Thread | [Next in Thread] |