1185029Spjd//===-- PPCSchedule.td - PowerPC Scheduling Definitions ----*- tablegen -*-===// 2185029Spjd// 3185029Spjd// Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions. 4185029Spjd// See https://llvm.org/LICENSE.txt for license information. 5185029Spjd// SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception 6185029Spjd// 7185029Spjd//===----------------------------------------------------------------------===// 8185029Spjd 9185029Spjd//===----------------------------------------------------------------------===// 10185029Spjd// Instruction Itinerary classes used for PowerPC 11185029Spjd// 12185029Spjddef IIC_IntSimple : InstrItinClass; 13185029Spjddef IIC_IntGeneral : InstrItinClass; 14185029Spjddef IIC_IntCompare : InstrItinClass; 15185029Spjddef IIC_IntISEL : InstrItinClass; 16185029Spjddef IIC_IntDivD : InstrItinClass; 17185029Spjddef IIC_IntDivW : InstrItinClass; 18185029Spjddef IIC_IntMFFS : InstrItinClass; 19185029Spjddef IIC_IntMFVSCR : InstrItinClass; 20185029Spjddef IIC_IntMTFSB0 : InstrItinClass; 21185029Spjddef IIC_IntMTSRD : InstrItinClass; 22185029Spjddef IIC_IntMulHD : InstrItinClass; 23185029Spjddef IIC_IntMulHW : InstrItinClass; 24185029Spjddef IIC_IntMulHWU : InstrItinClass; 25185029Spjddef IIC_IntMulLI : InstrItinClass; 26185029Spjddef IIC_IntRFID : InstrItinClass; 27185029Spjddef IIC_IntRotateD : InstrItinClass; 28185029Spjddef IIC_IntRotateDI : InstrItinClass; 29185029Spjddef IIC_IntRotate : InstrItinClass; 30185029Spjddef IIC_IntShift : InstrItinClass; 31185029Spjddef IIC_IntTrapD : InstrItinClass; 32185029Spjddef IIC_IntTrapW : InstrItinClass; 33185029Spjddef IIC_BrB : InstrItinClass; 34185029Spjddef IIC_BrCR : InstrItinClass; 35185029Spjddef IIC_BrMCR : InstrItinClass; 36185029Spjddef IIC_BrMCRX : InstrItinClass; 37185029Spjddef IIC_LdStDCBA : InstrItinClass; 38185029Spjddef IIC_LdStDCBF : InstrItinClass; 39185029Spjddef IIC_LdStDCBI : InstrItinClass; 40185029Spjddef IIC_LdStLoad : InstrItinClass; 41185029Spjddef IIC_LdStLoadUpd : InstrItinClass; 42185029Spjddef IIC_LdStLoadUpdX : InstrItinClass; 43185029Spjddef IIC_LdStStore : InstrItinClass; 44185029Spjddef IIC_LdStDSS : InstrItinClass; 45185029Spjddef IIC_LdStICBI : InstrItinClass; 46185029Spjddef IIC_LdStLD : InstrItinClass; 47185029Spjddef IIC_LdStLDU : InstrItinClass; 48185029Spjddef IIC_LdStLDUX : InstrItinClass; 49185029Spjddef IIC_LdStLDARX : InstrItinClass; 50185029Spjddef IIC_LdStLFD : InstrItinClass; 51185029Spjddef IIC_LdStLFDU : InstrItinClass; 52185029Spjddef IIC_LdStLFDUX : InstrItinClass; 53185029Spjddef IIC_LdStLHA : InstrItinClass; 54185029Spjddef IIC_LdStLHAU : InstrItinClass; 55185029Spjddef IIC_LdStLHAUX : InstrItinClass; 56185029Spjddef IIC_LdStLMW : InstrItinClass; 57185029Spjddef IIC_LdStLVecX : InstrItinClass; 58185029Spjddef IIC_LdStLWA : InstrItinClass; 59185029Spjddef IIC_LdStLWARX : InstrItinClass; 60185029Spjddef IIC_LdStSLBIA : InstrItinClass; 61185029Spjddef IIC_LdStSLBIE : InstrItinClass; 62185029Spjddef IIC_LdStSTD : InstrItinClass; 63185029Spjddef IIC_LdStSTDCX : InstrItinClass; 64185029Spjddef IIC_LdStSTU : InstrItinClass; 65185029Spjddef IIC_LdStSTUX : InstrItinClass; 66185029Spjddef IIC_LdStSTFD : InstrItinClass; 67185029Spjddef IIC_LdStSTFDU : InstrItinClass; 68185029Spjddef IIC_LdStSTVEBX : InstrItinClass; 69185029Spjddef IIC_LdStSTWCX : InstrItinClass; 70185029Spjddef IIC_LdStSync : InstrItinClass; 71185029Spjddef IIC_LdStCOPY : InstrItinClass; 72185029Spjddef IIC_LdStPASTE : InstrItinClass; 73185029Spjddef IIC_SprISYNC : InstrItinClass; 74185029Spjddef IIC_SprMFSR : InstrItinClass; 75185029Spjddef IIC_SprMTMSR : InstrItinClass; 76185029Spjddef IIC_SprMTSR : InstrItinClass; 77185029Spjddef IIC_SprTLBSYNC : InstrItinClass; 78185029Spjddef IIC_SprMFCR : InstrItinClass; 79185029Spjddef IIC_SprMFCRF : InstrItinClass; 80185029Spjddef IIC_SprMFMSR : InstrItinClass; 81185029Spjddef IIC_SprMFSPR : InstrItinClass; 82185029Spjddef IIC_SprMFTB : InstrItinClass; 83185029Spjddef IIC_SprMTSPR : InstrItinClass; 84185029Spjddef IIC_SprMTSRIN : InstrItinClass; 85185029Spjddef IIC_SprRFI : InstrItinClass; 86185029Spjddef IIC_SprSC : InstrItinClass; 87185029Spjddef IIC_FPGeneral : InstrItinClass; 88185029Spjddef IIC_FPDGeneral : InstrItinClass; 89185029Spjddef IIC_FPSGeneral : InstrItinClass; 90185029Spjddef IIC_FPAddSub : InstrItinClass; 91185029Spjddef IIC_FPCompare : InstrItinClass; 92185029Spjddef IIC_FPDivD : InstrItinClass; 93185029Spjddef IIC_FPDivS : InstrItinClass; 94185029Spjddef IIC_FPFused : InstrItinClass; 95185029Spjddef IIC_FPRes : InstrItinClass; 96185029Spjddef IIC_FPSqrtD : InstrItinClass; 97185029Spjddef IIC_FPSqrtS : InstrItinClass; 98185029Spjddef IIC_VecGeneral : InstrItinClass; 99185029Spjddef IIC_VecFP : InstrItinClass; 100185029Spjddef IIC_VecFPCompare : InstrItinClass; 101185029Spjddef IIC_VecComplex : InstrItinClass; 102185029Spjddef IIC_VecPerm : InstrItinClass; 103185029Spjddef IIC_VecFPRound : InstrItinClass; 104185029Spjddef IIC_VecVSL : InstrItinClass; 105185029Spjddef IIC_VecVSR : InstrItinClass; 106185029Spjddef IIC_SprMTMSRD : InstrItinClass; 107185029Spjddef IIC_SprSLIE : InstrItinClass; 108185029Spjddef IIC_SprSLBFEE : InstrItinClass; 109def IIC_SprSLBIE : InstrItinClass; 110def IIC_SprSLBIEG : InstrItinClass; 111def IIC_SprSLBMTE : InstrItinClass; 112def IIC_SprSLBMFEE : InstrItinClass; 113def IIC_SprSLBMFEV : InstrItinClass; 114def IIC_SprSLBIA : InstrItinClass; 115def IIC_SprSLBSYNC : InstrItinClass; 116def IIC_SprTLBIA : InstrItinClass; 117def IIC_SprTLBIEL : InstrItinClass; 118def IIC_SprTLBIE : InstrItinClass; 119def IIC_SprABORT : InstrItinClass; 120def IIC_SprMSGSYNC : InstrItinClass; 121def IIC_SprSTOP : InstrItinClass; 122def IIC_SprMFPMR : InstrItinClass; 123def IIC_SprMTPMR : InstrItinClass; 124 125//===----------------------------------------------------------------------===// 126// Processor instruction itineraries. 127 128include "PPCScheduleG3.td" 129include "PPCSchedule440.td" 130include "PPCScheduleG4.td" 131include "PPCScheduleG4Plus.td" 132include "PPCScheduleG5.td" 133include "PPCScheduleP7.td" 134include "PPCScheduleP8.td" 135include "PPCScheduleP9.td" 136include "PPCScheduleA2.td" 137include "PPCScheduleE500.td" 138include "PPCScheduleE500mc.td" 139include "PPCScheduleE5500.td" 140