[PATCH] D78583: [RISCV] Add instruction definition for dret

Pengxuan Zheng via Phabricator via llvm-commits llvm-commits at lists.llvm.org
Thu Apr 23 11:23:24 PDT 2020


pzheng updated this revision to Diff 259641.
pzheng added a comment.
Herald added a subscriber: jfb.

Addressing comments


Repository:
  rG LLVM Github Monorepo

CHANGES SINCE LAST ACTION
  https://reviews.llvm.org/D78583/new/

https://reviews.llvm.org/D78583

Files:
  llvm/lib/Target/RISCV/RISCVInstrInfo.td
  llvm/test/MC/RISCV/debug-valid.s
  llvm/test/MC/RISCV/priv-valid.s


Index: llvm/test/MC/RISCV/priv-valid.s
===================================================================
--- llvm/test/MC/RISCV/priv-valid.s
+++ 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
Index: llvm/test/MC/RISCV/debug-valid.s
===================================================================
--- llvm/test/MC/RISCV/debug-valid.s
+++ 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
Index: llvm/lib/Target/RISCV/RISCVInstrInfo.td
===================================================================
--- llvm/lib/Target/RISCV/RISCVInstrInfo.td
+++ 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)
 //===----------------------------------------------------------------------===//


-------------- next part --------------
A non-text attachment was scrubbed...
Name: D78583.259641.patch
Type: text/x-patch
Size: 2117 bytes
Desc: not available
URL: <http://lists.llvm.org/pipermail/llvm-commits/attachments/20200423/049882ee/attachment.bin>


More information about the llvm-commits mailing list