ZHCUAQ1F july 2015 – april 2023
C6000 中只有两条交叉路径。这会将 C6000 限制为每个周期从每个数据路径的相反寄存器文件中读取一个源。编译器必须为每个指令选择一边;这称为分区。
建议您不要手动对线性汇编源代码进行初始分区。这使编译器能够更自由地对代码进行分区和优化。如果编译器在软件流水线循环中找不到理想分区,则可以手动对足够的指令进行分区,以通过对寄存器进行分区来强制进行理想分区。
汇编优化器为您选择一个寄存器,这样它的使用就与为对值进行操作的指令选择的功能单元一致。
可以使用两条指令直接对寄存器进行分区。.rega 指令将符号名称限制为 A 侧寄存器。.regb 指令将符号名称限制为 B 侧寄存器。有关这些指令的更多详细信息,请参阅 .rega/.regb 主题。.reg 指令允许您对存储在寄存器中的值使用描述性名称。有关 .reg 指令的更多详细信息和示例,请参阅 .reg 主题。
Example5-1 是一个手工编码的线性汇编程序,用于计算点积;与Example5-2(用于说明 C 代码)进行比较。