Hexagon_V65_Programmers_Reference_Manual(18)
11.4 J
J 指令类包括从(PC 相对)立即地址值获取目标地址的分支指令(跳转和调用)。 J 指令可在slot 2 和slot 3 上执行。
11.4.1 调用子程序
将程序流程更改为子程序。 该指令首先将下一个程序计数器 (NPC) 值传送到链接寄存器,然后跳转到目标地址。
该指令可以出现在插槽 2 或 3 中。
Class: J (slots 2,3)
注意
- 该指令可以根据谓词寄存器的值有条件地执行。 如果指令前面有“if Pn”,则该指令仅在谓词寄存器的最低有效位为 1 时执行。类似地,如果指令前面有“if !Pn”,则仅当最低有效位为 1 时才执行该指令。 -Pn 的有效位为 0。
- Next PC 值是紧跟在包含该指令的数据包中最后一条指令之后的地址。
- PC 值是数据包的起始地址
- PC 相对地址是通过获取解码的立即数并将其添加到当前 PC 值而形成的。
编码
字段名称 | 描述 |
---|---|
ICLASS | 指令类 |
DN | Dot-new |
Parse | 数据包/循环解析位 |
u2 | 编码寄存器 u 的字段 |
11.4.2 比较和跳转
比较两个寄存器,或者一个寄存器和立即数,并用结果写一个谓词。 然后使用谓词结果有条件地跳转到一个PC相对的目标地址。
可用作操作数的寄存器仅限于 R0-R7 和 R16-R23。 谓词目的地仅限于 P0 和 P1。
在汇编语法中,该指令在数据包中显示为两条指令:比较和单独的条件跳转。 汇编器可以将相邻的比较和跳转指令转换为复合比较跳转形式。
Class: J (slots 0,1,2,3)
编码
字段名称 | 描述 |
---|---|
ICLASS | 指令类 |
Parse | 数据包/循环解析位 |
s4 | 编码寄存器 s 的字段 |
t4 | 编码寄存器 t 的字段 |
11.4.3 跳转到地址
将程序流程更改为目标地址。 该指令将程序计数器更改为相对于 PC 地址的目标地址。 与当前 PC 地址的偏移量包含在指令编码中。
推测的跳转指令包括指定条件表达式的预期值的提示(“采用”或“未采用”)。 如果谓词的实际生成值与此预期值不同,则跳转指令会导致性能损失。
该指令可以出现在插槽 2 或 3 中。
Class: J (slots 0,1,2,3)
注意
- 该指令可以根据谓词寄存器的值有条件地执行。 如果指令前面有“if Pn”,则该指令仅在谓词寄存器的最低有效位为 1 时执行。类似地,如果指令前面有“if !Pn”,则仅当最低有效位为 1 时才执行该指令。 -Pn 的有效位为 0。
编码
字段名称 | 描述 |
---|---|
ICLASS | 指令类 |
DN | Dot-new |
PT | 预测 |
Parse | 数据包/循环解析位 |
u2 | 编码寄存器 u 的字段 |
11.4.4 跳转到以新谓词为条件的地址
进行推测跳跃。
如果新生成的谓词的 LSB 为真,则跳转。 谓词必须在与推测的跳转指令相同的数据包中生成。
推测的跳转指令包括指定条件表达式的预期值的提示(“采用”或“未采用”)。 如果谓词的实际生成值与此预期值不同,则跳转指令会导致性能损失。
该指令可以出现在插槽 2 或 3 中。
Class: J (slots 0,1,2,3)
注意
- 该指令可以根据谓词寄存器的值有条件地执行。 如果指令前面有“if Pn”,则该指令仅在谓词寄存器的最低有效位为 1 时执行。类似地,如果指令前面有“if !Pn”,则仅当最低有效位为 1 时才执行该指令。 -Pn 的有效位为 0。
编码
字段名称 | 描述 |
---|---|
ICLASS | 指令类 |
DN | Dot-new |
PT | 预测 |
Parse | 数据包/循环解析位 |
u2 | 编码寄存器 u 的字段 |
11.4.5 跳转到寄存器值的地址条件
执行寄存器条件跳转。
如果指定的寄存器表达式为真则跳转。
寄存器条件跳转包括一个提示(“采用”或“未采用”),它指定寄存器表达式的预期值。 如果表达式的实际生成值与此预期值不同,则跳转指令会导致性能损失。
该指令只能出现在插槽 3 中。
Class: J (slot 3)
注意
- 该指令将在未来版本中弃用。
编码
字段名称 | 描述 |
---|---|
sm | 仅主管模式 |
ICLASS | 指令类 |
Parse | 数据包/循环解析位 |
s5 | 编码寄存器 s 的字段 |
11.4.6 转移和跳跃
将无符号立即数或寄存器值移动到目标寄存器并无条件跳转。 在汇编语法中,该指令在数据包中显示为两条指令,一条传输和一条单独的跳转。 汇编器可以将相邻的传输和跳转指令转换为复合传输-跳转形式。
Class: J (slots 2,3)
编码
字段名称 | 描述 |
---|---|
ICLASS | 指令类 |
Parse | 数据包/循环解析位 |
d4 | 编码寄存器 d 的字段 |
s4 | 编码寄存器 s 的字段 |