OLD | NEW |
1 //===- X86InstrInfo.td - Main X86 Instruction Definition ---*- tablegen -*-===// | 1 //===- X86InstrInfo.td - Main X86 Instruction Definition ---*- tablegen -*-===// |
2 // | 2 // |
3 // The LLVM Compiler Infrastructure | 3 // The LLVM Compiler Infrastructure |
4 // | 4 // |
5 // This file is distributed under the University of Illinois Open Source | 5 // This file is distributed under the University of Illinois Open Source |
6 // License. See LICENSE.TXT for details. | 6 // License. See LICENSE.TXT for details. |
7 // | 7 // |
8 //===----------------------------------------------------------------------===// | 8 //===----------------------------------------------------------------------===// |
9 // | 9 // |
10 // This file describes the X86 instruction set, defining the instructions, and | 10 // This file describes the X86 instruction set, defining the instructions, and |
(...skipping 46 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
57 def SDT_X86CallSeqStart : SDCallSeqStart<[SDTCisVT<0, i32>]>; | 57 def SDT_X86CallSeqStart : SDCallSeqStart<[SDTCisVT<0, i32>]>; |
58 def SDT_X86CallSeqEnd : SDCallSeqEnd<[SDTCisVT<0, i32>, | 58 def SDT_X86CallSeqEnd : SDCallSeqEnd<[SDTCisVT<0, i32>, |
59 SDTCisVT<1, i32>]>; | 59 SDTCisVT<1, i32>]>; |
60 | 60 |
61 def SDT_X86Call : SDTypeProfile<0, -1, [SDTCisVT<0, iPTR>]>; | 61 def SDT_X86Call : SDTypeProfile<0, -1, [SDTCisVT<0, iPTR>]>; |
62 | 62 |
63 def SDT_X86VASTART_SAVE_XMM_REGS : SDTypeProfile<0, -1, [SDTCisVT<0, i8>, | 63 def SDT_X86VASTART_SAVE_XMM_REGS : SDTypeProfile<0, -1, [SDTCisVT<0, i8>, |
64 SDTCisVT<1, iPTR>, | 64 SDTCisVT<1, iPTR>, |
65 SDTCisVT<2, iPTR>]>; | 65 SDTCisVT<2, iPTR>]>; |
66 | 66 |
| 67 def SDT_X86VAARG_64 : SDTypeProfile<1, -1, [SDTCisPtrTy<0>, |
| 68 SDTCisPtrTy<1>, |
| 69 SDTCisVT<2, i32>, |
| 70 SDTCisVT<3, i8>, |
| 71 SDTCisVT<4, i32>]>; |
| 72 |
67 def SDTX86RepStr : SDTypeProfile<0, 1, [SDTCisVT<0, OtherVT>]>; | 73 def SDTX86RepStr : SDTypeProfile<0, 1, [SDTCisVT<0, OtherVT>]>; |
68 | 74 |
69 def SDTX86Void : SDTypeProfile<0, 0, []>; | 75 def SDTX86Void : SDTypeProfile<0, 0, []>; |
70 | 76 |
71 def SDTX86Wrapper : SDTypeProfile<1, 1, [SDTCisSameAs<0, 1>, SDTCisPtrTy<0>]>; | 77 def SDTX86Wrapper : SDTypeProfile<1, 1, [SDTCisSameAs<0, 1>, SDTCisPtrTy<0>]>; |
72 | 78 |
73 def SDT_X86TLSADDR : SDTypeProfile<0, 1, [SDTCisInt<0>]>; | 79 def SDT_X86TLSADDR : SDTypeProfile<0, 1, [SDTCisInt<0>]>; |
74 | 80 |
75 def SDT_X86TLSCALL : SDTypeProfile<0, 1, [SDTCisPtrTy<0>]>; | 81 def SDT_X86TLSCALL : SDTypeProfile<0, 1, [SDTCisPtrTy<0>]>; |
76 | 82 |
(...skipping 57 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
134 def X86AtomSwap64 : SDNode<"X86ISD::ATOMSWAP64_DAG", SDTX86atomicBinary, | 140 def X86AtomSwap64 : SDNode<"X86ISD::ATOMSWAP64_DAG", SDTX86atomicBinary, |
135 [SDNPHasChain, SDNPMayStore, | 141 [SDNPHasChain, SDNPMayStore, |
136 SDNPMayLoad, SDNPMemOperand]>; | 142 SDNPMayLoad, SDNPMemOperand]>; |
137 def X86retflag : SDNode<"X86ISD::RET_FLAG", SDTX86Ret, | 143 def X86retflag : SDNode<"X86ISD::RET_FLAG", SDTX86Ret, |
138 [SDNPHasChain, SDNPOptInFlag, SDNPVariadic]>; | 144 [SDNPHasChain, SDNPOptInFlag, SDNPVariadic]>; |
139 | 145 |
140 def X86vastart_save_xmm_regs : | 146 def X86vastart_save_xmm_regs : |
141 SDNode<"X86ISD::VASTART_SAVE_XMM_REGS", | 147 SDNode<"X86ISD::VASTART_SAVE_XMM_REGS", |
142 SDT_X86VASTART_SAVE_XMM_REGS, | 148 SDT_X86VASTART_SAVE_XMM_REGS, |
143 [SDNPHasChain, SDNPVariadic]>; | 149 [SDNPHasChain, SDNPVariadic]>; |
144 | 150 def X86vaarg64 : |
| 151 SDNode<"X86ISD::VAARG_64", SDT_X86VAARG_64, |
| 152 [SDNPHasChain, SDNPMayLoad, SDNPMayStore, |
| 153 SDNPMemOperand]>; |
145 def X86callseq_start : | 154 def X86callseq_start : |
146 SDNode<"ISD::CALLSEQ_START", SDT_X86CallSeqStart, | 155 SDNode<"ISD::CALLSEQ_START", SDT_X86CallSeqStart, |
147 [SDNPHasChain, SDNPOutFlag]>; | 156 [SDNPHasChain, SDNPOutFlag]>; |
148 def X86callseq_end : | 157 def X86callseq_end : |
149 SDNode<"ISD::CALLSEQ_END", SDT_X86CallSeqEnd, | 158 SDNode<"ISD::CALLSEQ_END", SDT_X86CallSeqEnd, |
150 [SDNPHasChain, SDNPOptInFlag, SDNPOutFlag]>; | 159 [SDNPHasChain, SDNPOptInFlag, SDNPOutFlag]>; |
151 | 160 |
152 def X86call : SDNode<"X86ISD::CALL", SDT_X86Call, | 161 def X86call : SDNode<"X86ISD::CALL", SDT_X86Call, |
153 [SDNPHasChain, SDNPOutFlag, SDNPOptInFlag, | 162 [SDNPHasChain, SDNPOutFlag, SDNPOptInFlag, |
154 SDNPVariadic]>; | 163 SDNPVariadic]>; |
(...skipping 1068 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
1223 include "X86Instr3DNow.td" | 1232 include "X86Instr3DNow.td" |
1224 | 1233 |
1225 include "X86InstrVMX.td" | 1234 include "X86InstrVMX.td" |
1226 | 1235 |
1227 // System instructions. | 1236 // System instructions. |
1228 include "X86InstrSystem.td" | 1237 include "X86InstrSystem.td" |
1229 | 1238 |
1230 // Compiler Pseudo Instructions and Pat Patterns | 1239 // Compiler Pseudo Instructions and Pat Patterns |
1231 include "X86InstrCompiler.td" | 1240 include "X86InstrCompiler.td" |
1232 | 1241 |
OLD | NEW |