OSDN Git Service

Synthetic instructions RET and RETL need to have all 3 parameters specified
authorMisha Brukman <brukman+llvm@gmail.com>
Thu, 14 Oct 2004 22:32:49 +0000 (22:32 +0000)
committerMisha Brukman <brukman+llvm@gmail.com>
Thu, 14 Oct 2004 22:32:49 +0000 (22:32 +0000)
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@17002 91177308-0d34-0410-b5e6-96231b3b80d8

lib/Target/Sparc/SparcInstrInfo.td
lib/Target/SparcV8/SparcV8InstrInfo.td

index af3c8bc..7725817 100644 (file)
@@ -47,10 +47,12 @@ def FpMOVD : PseudoInstV8<"FpMOVD">; // pseudo 64-bit double move
 
 // Section A.3 - Synthetic Instructions, p. 85
 // special cases of JMPL:
-let isReturn = 1, isTerminator = 1, hasDelaySlot = 1, simm13 = 8 in
-  def RET : F3_2<2, 0b111000, "ret">;
-let isReturn = 1, isTerminator = 1, hasDelaySlot = 1, simm13 = 8 in
-  def RETL: F3_2<2, 0b111000, "retl">;
+let isReturn = 1, isTerminator = 1, hasDelaySlot = 1 in {
+  let rd = I7.Num, rs1 = G0.Num, simm13 = 8 in
+    def RET : F3_2<2, 0b111000, "ret">;
+  let rd = O7.Num, rs1 = G0.Num, simm13 = 8 in
+    def RETL: F3_2<2, 0b111000, "retl">;
+}
 // CMP is a special case of SUBCC where destination is ignored, by setting it to
 // %g0 (hardwired zero).
 // FIXME: should keep track of the fact that it defs the integer condition codes
index af3c8bc..7725817 100644 (file)
@@ -47,10 +47,12 @@ def FpMOVD : PseudoInstV8<"FpMOVD">; // pseudo 64-bit double move
 
 // Section A.3 - Synthetic Instructions, p. 85
 // special cases of JMPL:
-let isReturn = 1, isTerminator = 1, hasDelaySlot = 1, simm13 = 8 in
-  def RET : F3_2<2, 0b111000, "ret">;
-let isReturn = 1, isTerminator = 1, hasDelaySlot = 1, simm13 = 8 in
-  def RETL: F3_2<2, 0b111000, "retl">;
+let isReturn = 1, isTerminator = 1, hasDelaySlot = 1 in {
+  let rd = I7.Num, rs1 = G0.Num, simm13 = 8 in
+    def RET : F3_2<2, 0b111000, "ret">;
+  let rd = O7.Num, rs1 = G0.Num, simm13 = 8 in
+    def RETL: F3_2<2, 0b111000, "retl">;
+}
 // CMP is a special case of SUBCC where destination is ignored, by setting it to
 // %g0 (hardwired zero).
 // FIXME: should keep track of the fact that it defs the integer condition codes