1//===- XCore.td - Describe the XCore Target Machine --------*- 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//===----------------------------------------------------------------------===// 12 13//===----------------------------------------------------------------------===// 14// Target-independent interfaces which we are implementing 15//===----------------------------------------------------------------------===// 16 17include "llvm/Target/Target.td" 18 19//===----------------------------------------------------------------------===// 20// Descriptions 21//===----------------------------------------------------------------------===// 22 23include "XCoreRegisterInfo.td" 24include "XCoreInstrInfo.td" 25include "XCoreCallingConv.td" 26 27def XCoreInstrInfo : InstrInfo { 28 let TSFlagsFields = []; 29 let TSFlagsShifts = []; 30} 31 32//===----------------------------------------------------------------------===// 33// XCore Subtarget features. 34//===----------------------------------------------------------------------===// 35 36def FeatureXS1A 37 : SubtargetFeature<"xs1a", "IsXS1A", "true", 38 "Enable XS1A instructions">; 39 40def FeatureXS1B 41 : SubtargetFeature<"xs1b", "IsXS1B", "true", 42 "Enable XS1B instructions">; 43 44//===----------------------------------------------------------------------===// 45// XCore processors supported. 46//===----------------------------------------------------------------------===// 47 48class Proc<string Name, list<SubtargetFeature> Features> 49 : Processor<Name, NoItineraries, Features>; 50 51def : Proc<"generic", [FeatureXS1A]>; 52def : Proc<"xs1a-generic", [FeatureXS1A]>; 53def : Proc<"xs1b-generic", [FeatureXS1B]>; 54 55//===----------------------------------------------------------------------===// 56// Declare the target which we are implementing 57//===----------------------------------------------------------------------===// 58 59def XCore : Target { 60 // Pull in Instruction Info: 61 let InstructionSet = XCoreInstrInfo; 62} 63