]> git.proxmox.com Git - rustc.git/blob - src/llvm/lib/Target/Hexagon/MCTargetDesc/HexagonBaseInfo.h
Imported Upstream version 0.6
[rustc.git] / src / llvm / lib / Target / Hexagon / MCTargetDesc / HexagonBaseInfo.h
1 //===-- HexagonBaseInfo.h - Top level definitions for Hexagon --*- C++ -*--===//
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 file contains small standalone helper functions and enum definitions for
11 // the Hexagon target useful for the compiler back-end and the MC libraries.
12 // As such, it deliberately does not include references to LLVM core
13 // code gen types, passes, etc..
14 //
15 //===----------------------------------------------------------------------===//
16
17 #ifndef HEXAGONBASEINFO_H
18 #define HEXAGONBASEINFO_H
19
20 namespace llvm {
21
22 /// HexagonII - This namespace holds all of the target specific flags that
23 /// instruction info tracks.
24 ///
25 namespace HexagonII {
26 // *** The code below must match HexagonInstrFormat*.td *** //
27
28 // Insn types.
29 // *** Must match HexagonInstrFormat*.td ***
30 enum Type {
31 TypePSEUDO = 0,
32 TypeALU32 = 1,
33 TypeCR = 2,
34 TypeJR = 3,
35 TypeJ = 4,
36 TypeLD = 5,
37 TypeST = 6,
38 TypeSYSTEM = 7,
39 TypeXTYPE = 8,
40 TypeMEMOP = 9,
41 TypeNV = 10,
42 TypePREFIX = 30, // Such as extenders.
43 TypeMARKER = 31 // Such as end of a HW loop.
44 };
45
46
47
48 // MCInstrDesc TSFlags
49 // *** Must match HexagonInstrFormat*.td ***
50 enum {
51 // This 5-bit field describes the insn type.
52 TypePos = 0,
53 TypeMask = 0x1f,
54
55 // Solo instructions.
56 SoloPos = 5,
57 SoloMask = 0x1,
58
59 // Predicated instructions.
60 PredicatedPos = 6,
61 PredicatedMask = 0x1
62 };
63
64 // *** The code above must match HexagonInstrFormat*.td *** //
65
66 } // End namespace HexagonII.
67
68 } // End namespace llvm.
69
70 #endif