Add two new calling conventions for runtime calls
[oota-llvm.git] / lib / Target / R600 / Processors.td
1 //===-- Processors.td - R600 Processor definitions ------------------------===//
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 class Proc<string Name, ProcessorItineraries itin, list<SubtargetFeature> Features>
11 : Processor<Name, itin, Features>;
12
13 //===----------------------------------------------------------------------===//
14 // R600
15 //===----------------------------------------------------------------------===//
16 def : Proc<"",           R600_VLIW5_Itin,
17     [FeatureR600, FeatureVertexCache]>;
18
19 def : Proc<"r600",       R600_VLIW5_Itin,
20     [FeatureR600 , FeatureVertexCache]>;
21
22 def : Proc<"rs880",      R600_VLIW5_Itin,
23     [FeatureR600]>;
24
25 def : Proc<"rv670",      R600_VLIW5_Itin,
26     [FeatureR600, FeatureFP64, FeatureVertexCache]>;
27
28 //===----------------------------------------------------------------------===//
29 // R700
30 //===----------------------------------------------------------------------===//
31
32 def : Proc<"rv710",      R600_VLIW5_Itin,
33     [FeatureR700, FeatureVertexCache]>;
34
35 def : Proc<"rv730",      R600_VLIW5_Itin,
36     [FeatureR700, FeatureVertexCache]>;
37
38 def : Proc<"rv770",      R600_VLIW5_Itin,
39     [FeatureR700, FeatureFP64, FeatureVertexCache]>;
40
41 //===----------------------------------------------------------------------===//
42 // Evergreen
43 //===----------------------------------------------------------------------===//
44
45 def : Proc<"cedar",      R600_VLIW5_Itin,
46     [FeatureEvergreen, FeatureVertexCache]>;
47
48 def : Proc<"redwood",    R600_VLIW5_Itin,
49     [FeatureEvergreen, FeatureVertexCache]>;
50
51 def : Proc<"sumo",       R600_VLIW5_Itin,
52     [FeatureEvergreen]>;
53
54 def : Proc<"juniper",    R600_VLIW5_Itin,
55     [FeatureEvergreen, FeatureVertexCache]>;
56
57 def : Proc<"cypress",    R600_VLIW5_Itin,
58     [FeatureEvergreen, FeatureFP64, FeatureVertexCache]>;
59
60 //===----------------------------------------------------------------------===//
61 // Northern Islands
62 //===----------------------------------------------------------------------===//
63
64 def : Proc<"barts",      R600_VLIW5_Itin,
65     [FeatureNorthernIslands, FeatureVertexCache]>;
66
67 def : Proc<"turks",      R600_VLIW5_Itin,
68     [FeatureNorthernIslands, FeatureVertexCache]>;
69
70 def : Proc<"caicos",     R600_VLIW5_Itin,
71     [FeatureNorthernIslands]>;
72
73 def : Proc<"cayman",     R600_VLIW4_Itin,
74     [FeatureNorthernIslands, FeatureFP64, FeatureCaymanISA]>;
75
76 //===----------------------------------------------------------------------===//
77 // Southern Islands
78 //===----------------------------------------------------------------------===//
79
80 def : Proc<"SI",         SI_Itin, [FeatureSouthernIslands]>;
81
82 def : Proc<"tahiti",     SI_Itin, [FeatureSouthernIslands]>;
83
84 def : Proc<"pitcairn",   SI_Itin, [FeatureSouthernIslands]>;
85
86 def : Proc<"verde",      SI_Itin, [FeatureSouthernIslands]>;
87
88 def : Proc<"oland",      SI_Itin, [FeatureSouthernIslands]>;
89
90 def : Proc<"hainan",     SI_Itin, [FeatureSouthernIslands]>;
91
92 //===----------------------------------------------------------------------===//
93 // Sea Islands
94 //===----------------------------------------------------------------------===//
95
96 def : Proc<"bonaire",    SI_Itin, [FeatureSeaIslands]>;
97
98 def : Proc<"kabini",     SI_Itin, [FeatureSeaIslands]>;
99
100 def : Proc<"kaveri",     SI_Itin, [FeatureSeaIslands]>;
101
102 def : Proc<"hawaii",     SI_Itin, [FeatureSeaIslands]>;