跳转至

状态标志和条件执行

通过'setc'类的微指令用于修改CARG寄存器,在块指令提交时,根据块指令的跳转类型及CARG寄存器中的值,执行对应的路径。当块指令的跳转为'COND'、'IND'、'ICALL'时,块体需使用'setc'类微指令。

例如想要让一个块在满足条件时跳转到另一个块,不满足条件则fall through到下一个块运行。应该在块头指明跳转类型及跳转目标地址,可以用’BSTART. COND, label’伪指令来表达,并且在块体微指令中加上条件类的‘setc’指令来设置条件状态,CARG寄存器的详细内容参见CARG寄存器。下面给出一个个示例:

    ...
.Lblock1:
    BSTART COND, .Lblock2
    微指令
    setc.eq t#1, zero
    BSTART IND
    微指令
    setc.tgt t#1
    ...
    BSTART ICALL
    微指令
    addpc t#1,4,->ra
.Lblock2:
    BSTART
    ...
    BSTOP
    ...