| //===- NVPTXInstrFormats.td - NVPTX Instruction Formats-------*- tblgen -*-===// |
| // |
| // The LLVM Compiler Infrastructure |
| // |
| // This file is distributed under the University of Illinois Open Source |
| // License. See LICENSE.TXT for details. |
| // |
| //===----------------------------------------------------------------------===// |
| |
| //===----------------------------------------------------------------------===// |
| // Describe NVPTX instructions format |
| // |
| //===----------------------------------------------------------------------===// |
| |
| // Vector instruction type enum |
| class VecInstTypeEnum<bits<4> val> { |
| bits<4> Value=val; |
| } |
| def VecNOP : VecInstTypeEnum<0>; |
| |
| // Generic NVPTX Format |
| |
| class NVPTXInst<dag outs, dag ins, string asmstr, list<dag> pattern> |
| : Instruction { |
| field bits<14> Inst; |
| |
| let Namespace = "NVPTX"; |
| dag OutOperandList = outs; |
| dag InOperandList = ins; |
| let AsmString = asmstr; |
| let Pattern = pattern; |
| |
| // TSFlagFields |
| bits<4> VecInstType = VecNOP.Value; |
| bit IsSimpleMove = 0; |
| bit IsLoad = 0; |
| bit IsStore = 0; |
| |
| let TSFlags{3-0} = VecInstType; |
| let TSFlags{4-4} = IsSimpleMove; |
| let TSFlags{5-5} = IsLoad; |
| let TSFlags{6-6} = IsStore; |
| } |