Remove the return_reg instruction.

RISC architectures that take a return address in a register can use a
special-purpose `link` return value to do so.
This commit is contained in:
Jakob Stoklund Olesen
2017-04-19 16:08:16 -07:00
parent 315c858b48
commit 832247019b
6 changed files with 11 additions and 32 deletions

View File

@@ -155,25 +155,6 @@ x_return = Instruction(
""",
ins=rvals, is_return=True, is_terminator=True)
raddr = Operand('raddr', iAddr, doc='Return address')
return_reg = Instruction(
'return_reg', r"""
Return from the function to a return address held in a register.
Unconditionally transfer control to the calling function, passing the
provided return values. The list of return values must match the
function signature's return types.
This instruction should only be used by ISA-specific epilogue lowering
code. It is equivalent to :inst:`return`, but the return address is
provided explicitly in a register. This style of return instruction is
used by RISC architectures such as ARM and RISC-V. A normal
:inst:`return` will be legalized into this instruction on these
architectures.
""",
ins=(raddr, rvals), is_return=True, is_terminator=True)
FN = Operand(
'FN',
entities.func_ref,