diff options
author | Misha Brukman <brukman+llvm@gmail.com> | 2004-10-14 22:32:49 +0000 |
---|---|---|
committer | Misha Brukman <brukman+llvm@gmail.com> | 2004-10-14 22:32:49 +0000 |
commit | 3df04c58fcaccb8bd792cf2794921ab7a4bb8dc7 (patch) | |
tree | 6d32fcf0e430d134c6636857b65d2607f01def2f | |
parent | 45a68268a40310dac90d751d40c74c5e81e15a01 (diff) | |
download | external_llvm-3df04c58fcaccb8bd792cf2794921ab7a4bb8dc7.zip external_llvm-3df04c58fcaccb8bd792cf2794921ab7a4bb8dc7.tar.gz external_llvm-3df04c58fcaccb8bd792cf2794921ab7a4bb8dc7.tar.bz2 |
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
-rw-r--r-- | lib/Target/Sparc/SparcInstrInfo.td | 10 | ||||
-rw-r--r-- | 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 af3c8bc..7725817 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 af3c8bc..7725817 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 |