为什么在Armv9.0-a核上执行bc.eq、bc.ne等BC.cond指令会报非法指令异常?

问题描述 投票:0回答:1

如 A-profile 架构的 Arm® 架构参考手册中所述,FEAT_HBC 提供 BC.cond 指令来给出条件分支,并向分支预测逻辑提示该分支将表现一致,并且极不可能改变方向。从 Armv8.8 开始,FEAT_HBC 是强制的。 FEAT_HBC 提供 BC.cond 指令 FEAT_HBC 从 Armv8.8 开始是强制的

但在基于Armv9.0-a核(Cortex-A715和Cortex-A510)的Pixel8上执行bc.eq或bc.ne等BC.cond指令时,会报非法指令异常。 非法指令异常

希望这个问题能得到解答。

arm instruction-set
1个回答
0
投票

尽管 9.0 的数字高于 8.8,但 Armv9.0 不包括 Armv8.8 作为子集。 仅保证包含 Armv8.5。 这在架构参考手册中定义“Armv9.0 架构扩展”部分的开头进行了记录。

这按照时间顺序也是有意义的 - 据我所知,Armv9.0 于 2021 年 3 月发布,而 Armv8.8 是六个月后的 2021 年 9 月发布的。

因此,看来您的芯片根本不支持这些指令,但这并不违反 Armv9.0 合规性。

© www.soinside.com 2019 - 2024. All rights reserved.