• 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指令类
    DNDot-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指令类
    DNDot-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指令类
    DNDot-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 的字段
  • 相关阅读:
    ADS原理图到Layout,Layout更新原理图
    SpringBoot SpringBoot 开发实用篇 4 数据层解决方案 4.2 JdbcTemplate
    xtrabackup恢复数据时提示“This target seems to be not preared yet.”
    Word制作生成html模板替换动态值为占位符使用Java转为pdf文件
    (中)苹果有开源,但又怎样呢?
    Kafka问题纪要
    高校成绩管理数据库系统的设计与实现
    puppeteer只生成一页pdf的问题
    软考高级系统架构 上午真题错题总结
    分享自己平时使用的socket多客户端通信的代码技术点和软件使用
  • 原文地址:https://blog.csdn.net/weixin_38498942/article/details/126155164