]> CyberLeo.Net >> Repos - FreeBSD/stable/9.git/blob - contrib/llvm/lib/Target/Hexagon/HexagonMCInst.h
MFC r240780, r252468:
[FreeBSD/stable/9.git] / contrib / llvm / lib / Target / Hexagon / HexagonMCInst.h
1 //===- HexagonMCInst.h - Hexagon sub-class of MCInst ----------------------===//
2 //
3 //                     The LLVM Compiler Infrastructure
4 //
5 // This file is distributed under the University of Illinois Open Source
6 // License. See LICENSE.TXT for details.
7 //
8 //===----------------------------------------------------------------------===//
9 //
10 // This class extends MCInst to allow some VLIW annotation.
11 //
12 //===----------------------------------------------------------------------===//
13
14 #ifndef HEXAGONMCINST_H
15 #define HEXAGONMCINST_H
16
17 #include "llvm/MC/MCInst.h"
18 #include "llvm/CodeGen/MachineInstr.h"
19
20 namespace llvm {
21   class HexagonMCInst: public MCInst {
22     // Packet start and end markers
23     unsigned startPacket: 1, endPacket: 1;
24     const MachineInstr *MachineI;
25   public:
26     explicit HexagonMCInst(): MCInst(),
27                               startPacket(0), endPacket(0) {}
28
29     const MachineInstr* getMI() const { return MachineI; }
30
31     void setMI(const MachineInstr *MI) { MachineI = MI; }
32
33     bool isStartPacket() const { return (startPacket); }
34     bool isEndPacket() const { return (endPacket); }
35
36     void setStartPacket(bool yes) { startPacket = yes; }
37     void setEndPacket(bool yes) { endPacket = yes; }
38   };
39 }
40
41 #endif