跳转至

C.SETRET

说明

设置返回地址(Set Return Address)
立即数左移1位(低位置零)后与本指令的TPC相加,结果写到ra寄存器中。

本指令的标准形式请见SETRET

汇编语法

    c.setret uimm, ->ra

汇编符号

  • uimm:5位无符号立即数,编码于uimm5域。
  • ->:用于指示目的寄存器。
  • ra:目的寄存器,全局寄存器ra(r10)。

编码格式

C.SETRET

执行方式

    integer datawidth = 64;

    bits(datawidth) uimm = ZeroExtend(uimm5);
    bits(datawidth) result = tpc + (uimm << 1);
    R[10, datawidth] = result;

汇编索引模式

指令只能输出到ra寄存器:

    c.setret uimm, ->ra             /* 立即数操作数 */

注意!

  1. 本指令只能写全局的ra寄存器
  2. 本指令仅在CALLICALL跳转的块内使用。

备注

本指令属于压缩指令扩展,仅在使能了压缩扩展的处理器中支持使用。