From 3df04c58fcaccb8bd792cf2794921ab7a4bb8dc7 Mon Sep 17 00:00:00 2001 From: Misha Brukman Date: Thu, 14 Oct 2004 22:32:49 +0000 Subject: [PATCH] Synthetic instructions RET and RETL need to have all 3 parameters specified git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@17002 91177308-0d34-0410-b5e6-96231b3b80d8 --- lib/Target/Sparc/SparcInstrInfo.td | 10 ++++++---- lib/Target/SparcV8/SparcV8InstrInfo.td | 10 ++++++---- 2 files changed, 12 insertions(+), 8 deletions(-) diff --git a/lib/Target/Sparc/SparcInstrInfo.td b/lib/Target/Sparc/SparcInstrInfo.td index af3c8bce9cf..77258173ac2 100644 --- a/lib/Target/Sparc/SparcInstrInfo.td +++ b/lib/Target/Sparc/SparcInstrInfo.td @@ -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 diff --git a/lib/Target/SparcV8/SparcV8InstrInfo.td b/lib/Target/SparcV8/SparcV8InstrInfo.td index af3c8bce9cf..77258173ac2 100644 --- a/lib/Target/SparcV8/SparcV8InstrInfo.td +++ b/lib/Target/SparcV8/SparcV8InstrInfo.td @@ -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 -- 2.11.0