]> CyberLeo.Net >> Repos - FreeBSD/FreeBSD.git/blob - contrib/llvm/lib/Target/PowerPC/PPCSchedule.td
Merge clang 7.0.1 and several follow-up changes
[FreeBSD/FreeBSD.git] / contrib / llvm / lib / Target / PowerPC / PPCSchedule.td
1 //===-- PPCSchedule.td - PowerPC Scheduling Definitions ----*- tablegen -*-===//
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 //===----------------------------------------------------------------------===//
11 // Instruction Itinerary classes used for PowerPC
12 //
13 def IIC_IntSimple    : InstrItinClass;
14 def IIC_IntGeneral   : InstrItinClass;
15 def IIC_IntCompare   : InstrItinClass;
16 def IIC_IntISEL      : InstrItinClass;
17 def IIC_IntDivD      : InstrItinClass;
18 def IIC_IntDivW      : InstrItinClass;
19 def IIC_IntMFFS      : InstrItinClass;
20 def IIC_IntMFVSCR    : InstrItinClass;
21 def IIC_IntMTFSB0    : InstrItinClass;
22 def IIC_IntMTSRD     : InstrItinClass;
23 def IIC_IntMulHD     : InstrItinClass;
24 def IIC_IntMulHW     : InstrItinClass;
25 def IIC_IntMulHWU    : InstrItinClass;
26 def IIC_IntMulLI     : InstrItinClass;
27 def IIC_IntRFID      : InstrItinClass;
28 def IIC_IntRotateD   : InstrItinClass;
29 def IIC_IntRotateDI  : InstrItinClass;
30 def IIC_IntRotate    : InstrItinClass;
31 def IIC_IntShift     : InstrItinClass;
32 def IIC_IntTrapD     : InstrItinClass;
33 def IIC_IntTrapW     : InstrItinClass;
34 def IIC_BrB          : InstrItinClass;
35 def IIC_BrCR         : InstrItinClass;
36 def IIC_BrMCR        : InstrItinClass;
37 def IIC_BrMCRX       : InstrItinClass;
38 def IIC_LdStDCBA     : InstrItinClass;
39 def IIC_LdStDCBF     : InstrItinClass;
40 def IIC_LdStDCBI     : InstrItinClass;
41 def IIC_LdStLoad     : InstrItinClass;
42 def IIC_LdStLoadUpd  : InstrItinClass;
43 def IIC_LdStLoadUpdX : InstrItinClass;
44 def IIC_LdStStore    : InstrItinClass;
45 def IIC_LdStStoreUpd : InstrItinClass;
46 def IIC_LdStDSS      : InstrItinClass;
47 def IIC_LdStICBI     : InstrItinClass;
48 def IIC_LdStLD       : InstrItinClass;
49 def IIC_LdStLDU      : InstrItinClass;
50 def IIC_LdStLDUX     : InstrItinClass;
51 def IIC_LdStLDARX    : InstrItinClass;
52 def IIC_LdStLFD      : InstrItinClass;
53 def IIC_LdStLFDU     : InstrItinClass;
54 def IIC_LdStLFDUX    : InstrItinClass;
55 def IIC_LdStLHA      : InstrItinClass;
56 def IIC_LdStLHAU     : InstrItinClass;
57 def IIC_LdStLHAUX    : InstrItinClass;
58 def IIC_LdStLMW      : InstrItinClass;
59 def IIC_LdStLVecX    : InstrItinClass;
60 def IIC_LdStLWA      : InstrItinClass;
61 def IIC_LdStLWARX    : InstrItinClass;
62 def IIC_LdStSLBIA    : InstrItinClass;
63 def IIC_LdStSLBIE    : InstrItinClass;
64 def IIC_LdStSTD      : InstrItinClass;
65 def IIC_LdStSTDCX    : InstrItinClass;
66 def IIC_LdStSTDU     : InstrItinClass;
67 def IIC_LdStSTDUX    : InstrItinClass;
68 def IIC_LdStSTFD     : InstrItinClass;
69 def IIC_LdStSTFDU    : InstrItinClass;
70 def IIC_LdStSTVEBX   : InstrItinClass;
71 def IIC_LdStSTWCX    : InstrItinClass;
72 def IIC_LdStSync     : InstrItinClass;
73 def IIC_LdStCOPY     : InstrItinClass;
74 def IIC_LdStPASTE    : InstrItinClass;
75 def IIC_SprISYNC     : InstrItinClass;
76 def IIC_SprMFSR      : InstrItinClass;
77 def IIC_SprMTMSR     : InstrItinClass;
78 def IIC_SprMTSR      : InstrItinClass;
79 def IIC_SprTLBSYNC   : InstrItinClass;
80 def IIC_SprMFCR      : InstrItinClass;
81 def IIC_SprMFCRF     : InstrItinClass;
82 def IIC_SprMFMSR     : InstrItinClass;
83 def IIC_SprMFSPR     : InstrItinClass;
84 def IIC_SprMFTB      : InstrItinClass;
85 def IIC_SprMTSPR     : InstrItinClass;
86 def IIC_SprMTSRIN    : InstrItinClass;
87 def IIC_SprRFI       : InstrItinClass;
88 def IIC_SprSC        : InstrItinClass;
89 def IIC_FPGeneral    : InstrItinClass;
90 def IIC_FPDGeneral   : InstrItinClass;
91 def IIC_FPSGeneral   : InstrItinClass;
92 def IIC_FPAddSub     : InstrItinClass;
93 def IIC_FPCompare    : InstrItinClass;
94 def IIC_FPDivD       : InstrItinClass;
95 def IIC_FPDivS       : InstrItinClass;
96 def IIC_FPFused      : InstrItinClass;
97 def IIC_FPRes        : InstrItinClass;
98 def IIC_FPSqrtD      : InstrItinClass;
99 def IIC_FPSqrtS      : InstrItinClass;
100 def IIC_VecGeneral   : InstrItinClass;
101 def IIC_VecFP        : InstrItinClass;
102 def IIC_VecFPCompare : InstrItinClass;
103 def IIC_VecComplex   : InstrItinClass;
104 def IIC_VecPerm      : InstrItinClass;
105 def IIC_VecFPRound   : InstrItinClass;
106 def IIC_VecVSL       : InstrItinClass;
107 def IIC_VecVSR       : InstrItinClass;
108 def IIC_SprMTMSRD    : InstrItinClass;
109 def IIC_SprSLIE      : InstrItinClass;
110 def IIC_SprSLBIE     : InstrItinClass;
111 def IIC_SprSLBIEG    : InstrItinClass;
112 def IIC_SprSLBMTE    : InstrItinClass;
113 def IIC_SprSLBMFEE   : InstrItinClass;
114 def IIC_SprSLBMFEV   : InstrItinClass;
115 def IIC_SprSLBIA     : InstrItinClass;
116 def IIC_SprSLBSYNC   : InstrItinClass;
117 def IIC_SprTLBIA     : InstrItinClass;
118 def IIC_SprTLBIEL    : InstrItinClass;
119 def IIC_SprTLBIE     : InstrItinClass;
120 def IIC_SprABORT     : InstrItinClass;
121 def IIC_SprMSGSYNC   : InstrItinClass;
122 def IIC_SprSTOP      : InstrItinClass;
123 def IIC_SprMFPMR     : InstrItinClass;
124 def IIC_SprMTPMR     : InstrItinClass;
125
126 //===----------------------------------------------------------------------===//
127 // Processor instruction itineraries.
128
129 include "PPCScheduleG3.td"
130 include "PPCSchedule440.td"
131 include "PPCScheduleG4.td"
132 include "PPCScheduleG4Plus.td"
133 include "PPCScheduleG5.td"
134 include "PPCScheduleP7.td"
135 include "PPCScheduleP8.td"
136 include "PPCScheduleP9.td"
137 include "PPCScheduleA2.td"
138 include "PPCScheduleE500.td"
139 include "PPCScheduleE500mc.td"
140 include "PPCScheduleE5500.td"