ZHCAEQ3 November 2024 F29H850TU , F29H859TU-Q1
C29 ISA 针对特定性能特性设计了一系列指令,旨在优化以下领域的性能:
MINMAXF:MINMAXF 指令将 M 寄存器中的浮点值限定为其他两个 M 寄存器中指定的下限和上限。
QUADF:QUADF 指令设置 TDM 寄存器(CPU 状态寄存器)的标志位,将二维矢量系统分为 16 个段。通过使用输入坐标值的缩放值,TDM 标志位以六段空间矢量生成方法标识该段。这种方法也可扩展到其他空间矢量变体。
XC:XC 条件执行指令检查 DSTS 寄存器中的状态标志(如 A.Z、A.N、A.ZV 和 A.Z),并根据选定指令判断是否执行指令。基于标志值,一组指令数据包要么执行指令,要么用作 NOP(无操作)跳过。
SELECT:SELECT 指令根据测试条件,在两个源寄存器(例如 A、D 或 M 寄存器)中进行选择,然后将其内容复制到相同类型的目标寄存器。
CPU 支持“延迟分支”概念,可在实现不连续性的同时保持零开销,详见下文。
支持使用测试标志(如 TA.MAP 和 TDM.MAP)、基于 LUT 函数的条件分支指令。
QDECB:QDECB 多路条件分支指令检查 A14 寄存器的内容。基于 A14 寄存器的值,程序执行要么分支到四个指定目标中的一个,要么继续执行下一个指令数据包,并对 A14 寄存器值进行递减。
DDECB:DDECB 多路条件分支指令检查 A14 寄存器的内容。基于 A14 寄存器的值,程序执行要么分支到两个指定目标中的一个,要么继续执行下一个指令数据包,并对 A14 寄存器值进行递减。
C29 高级编译器根据需要自动选择合适的指令。在某些情况下,例如使用 QUADF 指令时,编译器可通过 C 代码中的内置函数调用相应指令,从而获得优化性能。
指令集用户指南列出了每条指令对应的内置函数(如有)。