1//===-- PPCSchedule.td - PowerPC Scheduling Definitions ----*- tablegen -*-===// 2// 3// Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions. 4// See https://llvm.org/LICENSE.txt for license information. 5// SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception 6// 7//===----------------------------------------------------------------------===// 8 9//===----------------------------------------------------------------------===// 10// Instruction Itinerary classes used for PowerPC 11// 12def IIC_IntSimple : InstrItinClass; 13def IIC_IntGeneral : InstrItinClass; 14def IIC_IntCompare : InstrItinClass; 15def IIC_IntISEL : InstrItinClass; 16def IIC_IntDivD : InstrItinClass; 17def IIC_IntDivW : InstrItinClass; 18def IIC_IntMFFS : InstrItinClass; 19def IIC_IntMFVSCR : InstrItinClass; 20def IIC_IntMTFSB0 : InstrItinClass; 21def IIC_IntMTSRD : InstrItinClass; 22def IIC_IntMulHD : InstrItinClass; 23def IIC_IntMulHW : InstrItinClass; 24def IIC_IntMulHWU : InstrItinClass; 25def IIC_IntMulLI : InstrItinClass; 26def IIC_IntRFID : InstrItinClass; 27def IIC_IntRotateD : InstrItinClass; 28def IIC_IntRotateDI : InstrItinClass; 29def IIC_IntRotate : InstrItinClass; 30def IIC_IntShift : InstrItinClass; 31def IIC_IntTrapD : InstrItinClass; 32def IIC_IntTrapW : InstrItinClass; 33def IIC_BrB : InstrItinClass; 34def IIC_BrCR : InstrItinClass; 35def IIC_BrMCR : InstrItinClass; 36def IIC_BrMCRX : InstrItinClass; 37def IIC_LdStDCBA : InstrItinClass; 38def IIC_LdStDCBF : InstrItinClass; 39def IIC_LdStDCBI : InstrItinClass; 40def IIC_LdStLoad : InstrItinClass; 41def IIC_LdStLoadUpd : InstrItinClass; 42def IIC_LdStLoadUpdX : InstrItinClass; 43def IIC_LdStStore : InstrItinClass; 44def IIC_LdStDSS : InstrItinClass; 45def IIC_LdStICBI : InstrItinClass; 46def IIC_LdStLD : InstrItinClass; 47def IIC_LdStLDU : InstrItinClass; 48def IIC_LdStLDUX : InstrItinClass; 49def IIC_LdStLDARX : InstrItinClass; 50def IIC_LdStLFD : InstrItinClass; 51def IIC_LdStLFDU : InstrItinClass; 52def IIC_LdStLFDUX : InstrItinClass; 53def IIC_LdStLHA : InstrItinClass; 54def IIC_LdStLHAU : InstrItinClass; 55def IIC_LdStLHAUX : InstrItinClass; 56def IIC_LdStLMW : InstrItinClass; 57def IIC_LdStLQ : InstrItinClass; 58def IIC_LdStLQARX : InstrItinClass; 59def IIC_LdStLVecX : InstrItinClass; 60def IIC_LdStLWA : InstrItinClass; 61def IIC_LdStLWARX : InstrItinClass; 62def IIC_LdStSLBIA : InstrItinClass; 63def IIC_LdStSLBIE : InstrItinClass; 64def IIC_LdStSTD : InstrItinClass; 65def IIC_LdStSTDCX : InstrItinClass; 66def IIC_LdStSTQ : InstrItinClass; 67def IIC_LdStSTQCX : InstrItinClass; 68def IIC_LdStSTU : InstrItinClass; 69def IIC_LdStSTUX : InstrItinClass; 70def IIC_LdStSTFD : InstrItinClass; 71def IIC_LdStSTFDU : InstrItinClass; 72def IIC_LdStSTVEBX : InstrItinClass; 73def IIC_LdStSTWCX : InstrItinClass; 74def IIC_LdStSync : InstrItinClass; 75def IIC_LdStCOPY : InstrItinClass; 76def IIC_LdStPASTE : InstrItinClass; 77def IIC_SprISYNC : InstrItinClass; 78def IIC_SprMFSR : InstrItinClass; 79def IIC_SprMTMSR : InstrItinClass; 80def IIC_SprMTSR : InstrItinClass; 81def IIC_SprTLBSYNC : InstrItinClass; 82def IIC_SprMFCR : InstrItinClass; 83def IIC_SprMFCRF : InstrItinClass; 84def IIC_SprMFMSR : InstrItinClass; 85def IIC_SprMFSPR : InstrItinClass; 86def IIC_SprMFTB : InstrItinClass; 87def IIC_SprMTSPR : InstrItinClass; 88def IIC_SprMTSRIN : InstrItinClass; 89def IIC_SprRFI : InstrItinClass; 90def IIC_SprSC : InstrItinClass; 91def IIC_FPGeneral : InstrItinClass; 92def IIC_FPDGeneral : InstrItinClass; 93def IIC_FPSGeneral : InstrItinClass; 94def IIC_FPAddSub : InstrItinClass; 95def IIC_FPCompare : InstrItinClass; 96def IIC_FPDivD : InstrItinClass; 97def IIC_FPDivS : InstrItinClass; 98def IIC_FPFused : InstrItinClass; 99def IIC_FPRes : InstrItinClass; 100def IIC_FPSqrtD : InstrItinClass; 101def IIC_FPSqrtS : InstrItinClass; 102def IIC_VecGeneral : InstrItinClass; 103def IIC_VecFP : InstrItinClass; 104def IIC_VecFPCompare : InstrItinClass; 105def IIC_VecComplex : InstrItinClass; 106def IIC_VecPerm : InstrItinClass; 107def IIC_VecFPRound : InstrItinClass; 108def IIC_VecVSL : InstrItinClass; 109def IIC_VecVSR : InstrItinClass; 110def IIC_SprMTMSRD : InstrItinClass; 111def IIC_SprSLIE : InstrItinClass; 112def IIC_SprSLBFEE : InstrItinClass; 113def IIC_SprSLBIE : InstrItinClass; 114def IIC_SprSLBIEG : InstrItinClass; 115def IIC_SprSLBMTE : InstrItinClass; 116def IIC_SprSLBMFEE : InstrItinClass; 117def IIC_SprSLBMFEV : InstrItinClass; 118def IIC_SprSLBIA : InstrItinClass; 119def IIC_SprSLBSYNC : InstrItinClass; 120def IIC_SprTLBIA : InstrItinClass; 121def IIC_SprTLBIEL : InstrItinClass; 122def IIC_SprTLBIE : InstrItinClass; 123def IIC_SprABORT : InstrItinClass; 124def IIC_SprMSGSYNC : InstrItinClass; 125def IIC_SprSTOP : InstrItinClass; 126def IIC_SprMFPMR : InstrItinClass; 127def IIC_SprMTPMR : InstrItinClass; 128 129//===----------------------------------------------------------------------===// 130// Processor instruction itineraries. 131 132include "PPCScheduleG3.td" 133include "PPCSchedule440.td" 134include "PPCScheduleG4.td" 135include "PPCScheduleG4Plus.td" 136include "PPCScheduleG5.td" 137include "PPCScheduleP7.td" 138include "PPCScheduleP8.td" 139include "PPCScheduleP9.td" 140include "PPCScheduleA2.td" 141include "PPCScheduleE500.td" 142include "PPCScheduleE500mc.td" 143include "PPCScheduleE5500.td" 144