“-”和“.”有什么区别QEMU 中 RISCV 指令的解码?

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

RISCV的指令被解码为32位。当需要从输入中获取已解码指令的某些部分时,点“.”用作每个位的占位符。但是,有些指令的解码版本中包含“-”。那么“-”实际上是什么意思?

以下指令为例:

vlxei8_v      ... 0-1 . ..... ..... 000 ..... 0000111 @r_nfvm
,从左到右数,第五位是'-',这是什么意思?

qemu riscv instruction-encoding
1个回答
0
投票

decodetree 文件格式记录在 QEMU 文档的开发人员信息部分中: https://www.qemu.org/docs/master/devel/decodetree.html

也就是说:

'.' 和 '-' 之间的区别在于,'.' 表示该位将被模式中的字段或最后的 0 或 1 覆盖,而 '-' 表示该位确实被 cpu 忽略并且不会被指定。

基本上,如果您将某个位标记为“。”,代码生成器会抱怨。然后不要使用它(通过在其他地方指定它始终为 0 或 1 或通过指定它是命名字段的一部分)。 '-' 存在于偶尔情况下,其中该位的值实际上并不重要。

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