diff options
author | Dan Gohman <gohman@apple.com> | 2008-05-29 19:57:41 +0000 |
---|---|---|
committer | Dan Gohman <gohman@apple.com> | 2008-05-29 19:57:41 +0000 |
commit | d35121ad00667d93ea779a722dbee7d022410815 (patch) | |
tree | 167ea139429affa229aaff59e15188e662dee79e /lib/Target/X86/X86InstrInfo.td | |
parent | b99e2e20b2ad1e7c5bf613fba4ead50e9654876c (diff) | |
download | llvm-d35121ad00667d93ea779a722dbee7d022410815.tar.gz llvm-d35121ad00667d93ea779a722dbee7d022410815.tar.bz2 llvm-d35121ad00667d93ea779a722dbee7d022410815.tar.xz |
Fix a tblgen problem handling variable_ops in tblgen instruction
definitions. This adds a new construct, "discard", for indicating
that a named node in the input matching pattern is to be discarded,
instead of corresponding to a node in the output pattern. This
allows tblgen to know where the arguments for the varaible_ops are
supposed to begin.
This fixes "rdar://5791600", whatever that is ;-).
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@51699 91177308-0d34-0410-b5e6-96231b3b80d8
Diffstat (limited to 'lib/Target/X86/X86InstrInfo.td')
-rw-r--r-- | lib/Target/X86/X86InstrInfo.td | 6 |
1 files changed, 3 insertions, 3 deletions
diff --git a/lib/Target/X86/X86InstrInfo.td b/lib/Target/X86/X86InstrInfo.td index 843fbd0791..d0bd9552d0 100644 --- a/lib/Target/X86/X86InstrInfo.td +++ b/lib/Target/X86/X86InstrInfo.td @@ -45,7 +45,7 @@ def SDT_X86CallSeqStart : SDCallSeqStart<[ SDTCisVT<0, i32> ]>; def SDT_X86CallSeqEnd : SDCallSeqEnd<[ SDTCisVT<0, i32>, SDTCisVT<1, i32> ]>; -def SDT_X86Call : SDTypeProfile<0, 1, [SDTCisVT<0, iPTR>]>; +def SDT_X86Call : SDTypeProfile<0, -1, [SDTCisVT<0, iPTR>]>; def SDTX86RepStr : SDTypeProfile<0, 1, [SDTCisVT<0, OtherVT>]>; @@ -322,9 +322,9 @@ let neverHasSideEffects = 1, isNotDuplicable = 1 in // Return instructions. let isTerminator = 1, isReturn = 1, isBarrier = 1, hasCtrlDep = 1, FPForm = SpecialFP, FPFormBits = SpecialFP.Value in { - def RET : I <0xC3, RawFrm, (outs), (ins variable_ops), + def RET : I <0xC3, RawFrm, (outs), (ins discard:$amt, variable_ops), "ret", - [/*(X86retflag 0)*/ /*FIXME: Disabled: rdar://5791600*/]>; + [(X86retflag immAllZeros:$amt)]>; def RETI : Ii16<0xC2, RawFrm, (outs), (ins i16imm:$amt, variable_ops), "ret\t$amt", [(X86retflag imm:$amt)]>; |