B.IOR¶
说明¶
B.IOR(Block Input and Output Register)
本指令用于分离块块头中定义块指令输入和输出的全局寄存器。每条指令最多指定三个输入寄存器,一个输出寄存器。
通过解析该指令提供的寄存器使用信息,处理器可以更早地解除块指令之间的寄存器依赖,调度块指令并行执行。
汇编语法¶
汇编符号¶
编码格式¶
- RegSrc0,RegSrc1和RegSrc2:这3字段分别用于编码输入寄存器,编码为0时表示无效。
- RegDst:该字段用于编码输出寄存器,编码为0时表示无效。
输入输出寄存器字段的编码方式如下:
| 编码 | RegSrc | RegDst |
|---|---|---|
| 0 | invalid | invalid |
| n = [1, 23] | R[n] | R[n] |
| >23 | reserve | reserve |
汇编示例¶
在块头中使用B.IOR指令指定三个输入a0, a1, a4和两个输出a2, a3。
系统调用块XB中B.IOR的使用:
注意事项¶
- 允许一个块指令使用多条B.IOR指令编码本块的输入输出寄存器。
- B.IOR指令定义了重复的输入寄存器或重复的输出寄存器,那么汇编器应报错。
- B.IOR指令定义了重复的输入寄存器或重复的输出寄存器,硬件解析后应报异常。
- 分离块块体中访问了没有使用B.IOR定义的寄存器,硬件应报异常。
- 本指令用于一体块会导致输入输出寄存器定义状态不可知。