Jia Liu | b22310f | 2012-02-18 12:03:15 +0000 | [diff] [blame] | 1 | //===-- PPCSchedule.td - PowerPC Scheduling Definitions ----*- tablegen -*-===// |
| 2 | // |
Jim Laskey | c653300 | 2005-10-18 16:23:40 +0000 | [diff] [blame] | 3 | // The LLVM Compiler Infrastructure |
| 4 | // |
Chris Lattner | f3ebc3f | 2007-12-29 20:36:04 +0000 | [diff] [blame] | 5 | // This file is distributed under the University of Illinois Open Source |
| 6 | // License. See LICENSE.TXT for details. |
Jia Liu | b22310f | 2012-02-18 12:03:15 +0000 | [diff] [blame] | 7 | // |
Jim Laskey | c653300 | 2005-10-18 16:23:40 +0000 | [diff] [blame] | 8 | //===----------------------------------------------------------------------===// |
| 9 | |
Jim Laskey | c653300 | 2005-10-18 16:23:40 +0000 | [diff] [blame] | 10 | //===----------------------------------------------------------------------===// |
Jim Laskey | c653300 | 2005-10-18 16:23:40 +0000 | [diff] [blame] | 11 | // Instruction Itinerary classes used for PowerPC |
| 12 | // |
Hal Finkel | 3e5a360 | 2013-11-27 23:26:09 +0000 | [diff] [blame] | 13 | def IIC_IntSimple : InstrItinClass; |
| 14 | def IIC_IntGeneral : InstrItinClass; |
| 15 | def IIC_IntCompare : InstrItinClass; |
Hal Finkel | 11d3c56 | 2015-02-01 17:52:16 +0000 | [diff] [blame] | 16 | def IIC_IntISEL : InstrItinClass; |
Hal Finkel | 3e5a360 | 2013-11-27 23:26:09 +0000 | [diff] [blame] | 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; |
Hal Finkel | 46402a4 | 2013-11-30 20:41:13 +0000 | [diff] [blame] | 43 | def IIC_LdStLoadUpdX : InstrItinClass; |
Hal Finkel | 3e5a360 | 2013-11-27 23:26:09 +0000 | [diff] [blame] | 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; |
Hal Finkel | 46402a4 | 2013-11-30 20:41:13 +0000 | [diff] [blame] | 50 | def IIC_LdStLDUX : InstrItinClass; |
Hal Finkel | 3e5a360 | 2013-11-27 23:26:09 +0000 | [diff] [blame] | 51 | def IIC_LdStLDARX : InstrItinClass; |
| 52 | def IIC_LdStLFD : InstrItinClass; |
| 53 | def IIC_LdStLFDU : InstrItinClass; |
Hal Finkel | 46402a4 | 2013-11-30 20:41:13 +0000 | [diff] [blame] | 54 | def IIC_LdStLFDUX : InstrItinClass; |
Hal Finkel | 3e5a360 | 2013-11-27 23:26:09 +0000 | [diff] [blame] | 55 | def IIC_LdStLHA : InstrItinClass; |
| 56 | def IIC_LdStLHAU : InstrItinClass; |
Hal Finkel | 46402a4 | 2013-11-30 20:41:13 +0000 | [diff] [blame] | 57 | def IIC_LdStLHAUX : InstrItinClass; |
Hal Finkel | 3e5a360 | 2013-11-27 23:26:09 +0000 | [diff] [blame] | 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; |
Hal Finkel | 46402a4 | 2013-11-30 20:41:13 +0000 | [diff] [blame] | 67 | def IIC_LdStSTDUX : InstrItinClass; |
Hal Finkel | 3e5a360 | 2013-11-27 23:26:09 +0000 | [diff] [blame] | 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; |
Chuang-Yu Cheng | eaf4b3d | 2016-04-06 01:46:45 +0000 | [diff] [blame] | 73 | def IIC_LdStCOPY : InstrItinClass; |
| 74 | def IIC_LdStPASTE : InstrItinClass; |
Hal Finkel | 3e5a360 | 2013-11-27 23:26:09 +0000 | [diff] [blame] | 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; |
Hal Finkel | 46402a4 | 2013-11-30 20:41:13 +0000 | [diff] [blame] | 81 | def IIC_SprMFCRF : InstrItinClass; |
Hal Finkel | 3e5a360 | 2013-11-27 23:26:09 +0000 | [diff] [blame] | 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_FPAddSub : InstrItinClass; |
| 91 | def IIC_FPCompare : InstrItinClass; |
| 92 | def IIC_FPDivD : InstrItinClass; |
| 93 | def IIC_FPDivS : InstrItinClass; |
| 94 | def IIC_FPFused : InstrItinClass; |
| 95 | def IIC_FPRes : InstrItinClass; |
Hal Finkel | 46402a4 | 2013-11-30 20:41:13 +0000 | [diff] [blame] | 96 | def IIC_FPSqrtD : InstrItinClass; |
| 97 | def IIC_FPSqrtS : InstrItinClass; |
Hal Finkel | 3e5a360 | 2013-11-27 23:26:09 +0000 | [diff] [blame] | 98 | def IIC_VecGeneral : InstrItinClass; |
| 99 | def IIC_VecFP : InstrItinClass; |
| 100 | def IIC_VecFPCompare : InstrItinClass; |
| 101 | def IIC_VecComplex : InstrItinClass; |
| 102 | def IIC_VecPerm : InstrItinClass; |
| 103 | def IIC_VecFPRound : InstrItinClass; |
| 104 | def IIC_VecVSL : InstrItinClass; |
| 105 | def IIC_VecVSR : InstrItinClass; |
| 106 | def IIC_SprMTMSRD : InstrItinClass; |
| 107 | def IIC_SprSLIE : InstrItinClass; |
| 108 | def IIC_SprSLBIE : InstrItinClass; |
Chuang-Yu Cheng | eaf4b3d | 2016-04-06 01:46:45 +0000 | [diff] [blame] | 109 | def IIC_SprSLBIEG : InstrItinClass; |
Hal Finkel | 3e5a360 | 2013-11-27 23:26:09 +0000 | [diff] [blame] | 110 | def IIC_SprSLBMTE : InstrItinClass; |
| 111 | def IIC_SprSLBMFEE : InstrItinClass; |
Hal Finkel | 28842b9 | 2016-09-02 23:42:01 +0000 | [diff] [blame] | 112 | def IIC_SprSLBMFEV : InstrItinClass; |
Hal Finkel | 3e5a360 | 2013-11-27 23:26:09 +0000 | [diff] [blame] | 113 | def IIC_SprSLBIA : InstrItinClass; |
Chuang-Yu Cheng | eaf4b3d | 2016-04-06 01:46:45 +0000 | [diff] [blame] | 114 | def IIC_SprSLBSYNC : InstrItinClass; |
Joerg Sonnenberger | c03105b | 2014-08-02 20:16:29 +0000 | [diff] [blame] | 115 | def IIC_SprTLBIA : InstrItinClass; |
Hal Finkel | 3e5a360 | 2013-11-27 23:26:09 +0000 | [diff] [blame] | 116 | def IIC_SprTLBIEL : InstrItinClass; |
| 117 | def IIC_SprTLBIE : InstrItinClass; |
Chuang-Yu Cheng | eaf4b3d | 2016-04-06 01:46:45 +0000 | [diff] [blame] | 118 | def IIC_SprABORT : InstrItinClass; |
| 119 | def IIC_SprMSGSYNC : InstrItinClass; |
| 120 | def IIC_SprSTOP : InstrItinClass; |
Justin Hibbits | 10b6147 | 2017-01-29 04:55:57 +0000 | [diff] [blame] | 121 | def IIC_SprMFPMR : InstrItinClass; |
| 122 | def IIC_SprMTPMR : InstrItinClass; |
Jim Laskey | c653300 | 2005-10-18 16:23:40 +0000 | [diff] [blame] | 123 | |
| 124 | //===----------------------------------------------------------------------===// |
| 125 | // Processor instruction itineraries. |
| 126 | |
Jim Laskey | 74ab996 | 2005-10-19 19:51:16 +0000 | [diff] [blame] | 127 | include "PPCScheduleG3.td" |
Hal Finkel | 6fa5697 | 2011-10-17 04:03:49 +0000 | [diff] [blame] | 128 | include "PPCSchedule440.td" |
Jim Laskey | 74ab996 | 2005-10-19 19:51:16 +0000 | [diff] [blame] | 129 | include "PPCScheduleG4.td" |
| 130 | include "PPCScheduleG4Plus.td" |
| 131 | include "PPCScheduleG5.td" |
Hal Finkel | 42daeae | 2013-11-30 20:55:12 +0000 | [diff] [blame] | 132 | include "PPCScheduleP7.td" |
Will Schmidt | eba4923 | 2014-12-03 18:46:30 +0000 | [diff] [blame] | 133 | include "PPCScheduleP8.td" |
Ehsan Amiri | 6c17bb0 | 2016-12-19 13:35:45 +0000 | [diff] [blame] | 134 | include "PPCScheduleP9.td" |
Hal Finkel | 9f9f892 | 2012-04-01 19:22:40 +0000 | [diff] [blame] | 135 | include "PPCScheduleA2.td" |
Hal Finkel | 742b535 | 2012-08-28 16:12:39 +0000 | [diff] [blame] | 136 | include "PPCScheduleE500mc.td" |
| 137 | include "PPCScheduleE5500.td" |