diff --git a/llvm/lib/Target/RISCV/RISCVInstrInfo.td b/llvm/lib/Target/RISCV/RISCVInstrInfo.td --- a/llvm/lib/Target/RISCV/RISCVInstrInfo.td +++ b/llvm/lib/Target/RISCV/RISCVInstrInfo.td @@ -588,6 +588,18 @@ let rd = 0; } +//===----------------------------------------------------------------------===// +// Debug instructions +//===----------------------------------------------------------------------===// + +let isBarrier = 1, isReturn = 1, isTerminator = 1 in { +def DRET : Priv<"dret", 0b0111101>, Sched<[]> { + let rd = 0; + let rs1 = 0; + let rs2 = 0b10010; +} +} // isBarrier = 1, isReturn = 1, isTerminator = 1 + //===----------------------------------------------------------------------===// // Assembler Pseudo Instructions (User-Level ISA, Version 2.2, Chapter 20) //===----------------------------------------------------------------------===// diff --git a/llvm/test/MC/RISCV/priv-valid.s b/llvm/test/MC/RISCV/debug-valid.s copy from llvm/test/MC/RISCV/priv-valid.s copy to llvm/test/MC/RISCV/debug-valid.s --- a/llvm/test/MC/RISCV/priv-valid.s +++ b/llvm/test/MC/RISCV/debug-valid.s @@ -9,26 +9,6 @@ # RUN: | llvm-objdump -M no-aliases -d - \ # RUN: | FileCheck -check-prefix=CHECK-INST %s -# CHECK-INST: uret -# CHECK: encoding: [0x73,0x00,0x20,0x00] -uret - -# CHECK-INST: sret -# CHECK: encoding: [0x73,0x00,0x20,0x10] -sret - -# CHECK-INST: mret -# CHECK: encoding: [0x73,0x00,0x20,0x30] -mret - -# CHECK-INST: wfi -# CHECK: encoding: [0x73,0x00,0x50,0x10] -wfi - -# CHECK-INST: sfence.vma zero, zero -# CHECK: encoding: [0x73,0x00,0x00,0x12] -sfence.vma zero, zero - -# CHECK-INST: sfence.vma a0, a1 -# CHECK: encoding: [0x73,0x00,0xb5,0x12] -sfence.vma a0, a1 +# CHECK-INST: dret +# CHECK: encoding: [0x73,0x00,0x20,0x7b] +dret diff --git a/llvm/test/MC/RISCV/priv-valid.s b/llvm/test/MC/RISCV/priv-valid.s --- a/llvm/test/MC/RISCV/priv-valid.s +++ b/llvm/test/MC/RISCV/priv-valid.s @@ -21,6 +21,10 @@ # CHECK: encoding: [0x73,0x00,0x20,0x30] mret +# CHECK-INST: dret +# CHECK: encoding: [0x73,0x00,0x20,0x7b] +dret + # CHECK-INST: wfi # CHECK: encoding: [0x73,0x00,0x50,0x10] wfi