Skip to content

Commit 83b48a5

Browse files
rth7680Michael Tokarev
authored andcommitted
target/arm: Fix SME vs AdvSIMD exception priority
We failed to raise an exception when sme_excp_el == 0 and fp_excp_el == 1. Cc: [email protected] Fixes: 3d74825 ("target/arm: Add SME enablement checks") Reviewed-by: Peter Maydell <[email protected]> Signed-off-by: Richard Henderson <[email protected]> Message-id: [email protected] Signed-off-by: Peter Maydell <[email protected]> (cherry picked from commit f9b0f69304071384b12912bf9dd78e9ffd261cec) Signed-off-by: Michael Tokarev <[email protected]>
1 parent b8f48f4 commit 83b48a5

File tree

1 file changed

+2
-1
lines changed

1 file changed

+2
-1
lines changed

target/arm/tcg/translate-a64.c

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1499,7 +1499,8 @@ bool sme_enabled_check(DisasContext *s)
14991499
* to be zero when fp_excp_el has priority. This is because we need
15001500
* sme_excp_el by itself for cpregs access checks.
15011501
*/
1502-
if (!s->fp_excp_el || s->sme_excp_el < s->fp_excp_el) {
1502+
if (s->sme_excp_el
1503+
&& (!s->fp_excp_el || s->sme_excp_el <= s->fp_excp_el)) {
15031504
bool ret = sme_access_check(s);
15041505
s->fp_access_checked = (ret ? 1 : -1);
15051506
return ret;

0 commit comments

Comments
 (0)