跳转至

HL.SETRET

说明

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

汇编语法

    hl.setret uimm, ->ra

汇编符号

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

编码格式

  • 低16bit编码:

HL.SETRET

  • 高32bit编码:

HL.SETRET

执行方式

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

汇编索引模式

    hl.setret uimm,    ->ra         /* 只能写到全局的ra寄存器 */

注意!

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

备注

本指令属于增强指令扩展,,允许使用在不同块类型块内。