diff options
author | Venkatraman Govindaraju <venkatra@cs.wisc.edu> | 2011-01-21 22:00:00 +0000 |
---|---|---|
committer | Venkatraman Govindaraju <venkatra@cs.wisc.edu> | 2011-01-21 22:00:00 +0000 |
commit | fc3faa75cbadd8a1020941ec85adfda1d2f49688 (patch) | |
tree | c9aa42076f7c52f339b282b98918bad113c98643 /lib/Target/Sparc/SparcInstrInfo.td | |
parent | 5d2e1889622cc20ada6146041e6d862a6588194f (diff) |
Sparc backend:
Rename FLUSH to FLUSHW.
Output "ta 3" instead of a "flushw" instruction if v8 instruction set is used.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@123997 91177308-0d34-0410-b5e6-96231b3b80d8
Diffstat (limited to 'lib/Target/Sparc/SparcInstrInfo.td')
-rw-r--r-- | lib/Target/Sparc/SparcInstrInfo.td | 17 |
1 files changed, 11 insertions, 6 deletions
diff --git a/lib/Target/Sparc/SparcInstrInfo.td b/lib/Target/Sparc/SparcInstrInfo.td index 4f7b7c5768..ffeb8b55bd 100644 --- a/lib/Target/Sparc/SparcInstrInfo.td +++ b/lib/Target/Sparc/SparcInstrInfo.td @@ -127,7 +127,7 @@ def call : SDNode<"SPISD::CALL", SDT_SPCall, def retflag : SDNode<"SPISD::RET_FLAG", SDTNone, [SDNPHasChain, SDNPOptInGlue]>; -def flush : SDNode<"SPISD::FLUSH", SDTNone, +def flushw : SDNode<"SPISD::FLUSHW", SDTNone, [SDNPHasChain]>; def getPCX : Operand<i32> { @@ -221,11 +221,16 @@ def ADJCALLSTACKUP : Pseudo<(outs), (ins i32imm:$amt1, i32imm:$amt2), [(callseq_end timm:$amt1, timm:$amt2)]>; } -let hasSideEffects = 1, mayStore = 1 in - let rs2 = 0 in - def FLUSH : F3_1<0b10, 0b101011, (outs), (ins), - "flushw", - [(flush)]>; +let hasSideEffects = 1, mayStore = 1 in { + let rd = 0, rs1 = 0, rs2 = 0 in + def FLUSHW : F3_1<0b10, 0b101011, (outs), (ins), + "flushw", + [(flushw)]>, Requires<[HasV9]>; + let rd = 0, rs1 = 1, simm13 = 3 in + def TA3 : F3_2<0b10, 0b111010, (outs), (ins), + "ta 3", + [(flushw)]>; +} // FpMOVD/FpNEGD/FpABSD - These are lowered to single-precision ops by the // fpmover pass. |