aboutsummaryrefslogtreecommitdiff
path: root/llvm/lib
diff options
context:
space:
mode:
authorCraig Topper <craig.topper@sifive.com>2023-04-26 17:11:58 -0700
committerCraig Topper <craig.topper@sifive.com>2023-04-26 17:11:58 -0700
commit5854b39847251fded061b46ba03df6a361deadf8 (patch)
tree0344133f91f7de0c233e971c11aeca677ea71a10 /llvm/lib
parentc266bfe278bb586ddb03111c6656d5fe3a2ad554 (diff)
downloadllvm-5854b39847251fded061b46ba03df6a361deadf8.zip
llvm-5854b39847251fded061b46ba03df6a361deadf8.tar.gz
llvm-5854b39847251fded061b46ba03df6a361deadf8.tar.bz2
[RISCV] Remove the uret instruction.
This was part of the N extension which did not make it into version 1.12 of the privilege specification. Reviewed By: jrtc27 Differential Revision: https://reviews.llvm.org/D149308
Diffstat (limited to 'llvm/lib')
-rw-r--r--llvm/lib/Target/RISCV/RISCVISelLowering.cpp5
-rw-r--r--llvm/lib/Target/RISCV/RISCVISelLowering.h1
-rw-r--r--llvm/lib/Target/RISCV/RISCVInstrInfo.td9
3 files changed, 1 insertions, 14 deletions
diff --git a/llvm/lib/Target/RISCV/RISCVISelLowering.cpp b/llvm/lib/Target/RISCV/RISCVISelLowering.cpp
index 1dcc1bf..8104f19 100644
--- a/llvm/lib/Target/RISCV/RISCVISelLowering.cpp
+++ b/llvm/lib/Target/RISCV/RISCVISelLowering.cpp
@@ -14531,9 +14531,7 @@ RISCVTargetLowering::LowerReturn(SDValue Chain, CallingConv::ID CallConv,
StringRef Kind =
MF.getFunction().getFnAttribute("interrupt").getValueAsString();
- if (Kind == "user")
- RetOpc = RISCVISD::URET_GLUE;
- else if (Kind == "supervisor")
+ if (Kind == "supervisor")
RetOpc = RISCVISD::SRET_GLUE;
else
RetOpc = RISCVISD::MRET_GLUE;
@@ -14607,7 +14605,6 @@ const char *RISCVTargetLowering::getTargetNodeName(unsigned Opcode) const {
case RISCVISD::FIRST_NUMBER:
break;
NODE_NAME_CASE(RET_GLUE)
- NODE_NAME_CASE(URET_GLUE)
NODE_NAME_CASE(SRET_GLUE)
NODE_NAME_CASE(MRET_GLUE)
NODE_NAME_CASE(CALL)
diff --git a/llvm/lib/Target/RISCV/RISCVISelLowering.h b/llvm/lib/Target/RISCV/RISCVISelLowering.h
index ddfe319..b48cdb2 100644
--- a/llvm/lib/Target/RISCV/RISCVISelLowering.h
+++ b/llvm/lib/Target/RISCV/RISCVISelLowering.h
@@ -28,7 +28,6 @@ namespace RISCVISD {
enum NodeType : unsigned {
FIRST_NUMBER = ISD::BUILTIN_OP_END,
RET_GLUE,
- URET_GLUE,
SRET_GLUE,
MRET_GLUE,
CALL,
diff --git a/llvm/lib/Target/RISCV/RISCVInstrInfo.td b/llvm/lib/Target/RISCV/RISCVInstrInfo.td
index b125ed5..5e1131a 100644
--- a/llvm/lib/Target/RISCV/RISCVInstrInfo.td
+++ b/llvm/lib/Target/RISCV/RISCVInstrInfo.td
@@ -57,8 +57,6 @@ def riscv_call : SDNode<"RISCVISD::CALL", SDT_RISCVCall,
SDNPVariadic]>;
def riscv_ret_glue : SDNode<"RISCVISD::RET_GLUE", SDTNone,
[SDNPHasChain, SDNPOptInGlue, SDNPVariadic]>;
-def riscv_uret_glue : SDNode<"RISCVISD::URET_GLUE", SDTNone,
- [SDNPHasChain, SDNPOptInGlue]>;
def riscv_sret_glue : SDNode<"RISCVISD::SRET_GLUE", SDTNone,
[SDNPHasChain, SDNPOptInGlue]>;
def riscv_mret_glue : SDNode<"RISCVISD::MRET_GLUE", SDTNone,
@@ -822,12 +820,6 @@ def SRAW : ALUW_rr<0b0100000, 0b101, "sraw">,
//===----------------------------------------------------------------------===//
let isBarrier = 1, isReturn = 1, isTerminator = 1 in {
-def URET : Priv<"uret", 0b0000000>, Sched<[]> {
- let rd = 0;
- let rs1 = 0;
- let rs2 = 0b00010;
-}
-
def SRET : Priv<"sret", 0b0001000>, Sched<[]> {
let rd = 0;
let rs1 = 0;
@@ -1562,7 +1554,6 @@ def PseudoCALL : Pseudo<(outs), (ins call_symbol:$func), []>,
def : Pat<(riscv_call tglobaladdr:$func), (PseudoCALL tglobaladdr:$func)>;
def : Pat<(riscv_call texternalsym:$func), (PseudoCALL texternalsym:$func)>;
-def : Pat<(riscv_uret_glue), (URET X0, X0)>;
def : Pat<(riscv_sret_glue), (SRET X0, X0)>;
def : Pat<(riscv_mret_glue), (MRET X0, X0)>;