1 //===- SPU.td - Describe the STI Cell SPU Target Machine ----*- tablegen -*-===//
3 // The LLVM Compiler Infrastructure
5 // This file is distributed under the University of Illinois Open Source
6 // License. See LICENSE.TXT for details.
8 //===----------------------------------------------------------------------===//
10 // This is the top level entry point for the STI Cell SPU target machine.
12 //===----------------------------------------------------------------------===//
14 // Get the target-independent interfaces which we are implementing.
16 include "llvm/Target/Target.td"
18 // Holder of code fragments (you'd think this'd already be in
19 // a td file somewhere... :-)
21 class CodeFrag<dag frag> {
25 //===----------------------------------------------------------------------===//
26 // Register File Description
27 //===----------------------------------------------------------------------===//
29 include "SPURegisterInfo.td"
31 //===----------------------------------------------------------------------===//
32 // Instruction formats, instructions
33 //===----------------------------------------------------------------------===//
36 include "SPUOperands.td"
37 include "SPUSchedule.td"
38 include "SPUInstrFormats.td"
39 include "SPUInstrInfo.td"
41 //===----------------------------------------------------------------------===//
42 // Subtarget features:
43 //===----------------------------------------------------------------------===//
45 def DefaultProc: SubtargetFeature<"", "ProcDirective", "SPU::DEFAULT_PROC", "">;
47 SubtargetFeature<"large_mem","UseLargeMem", "true",
48 "Use large (>256) LSA memory addressing [default = false]">;
50 def SPURev0 : Processor<"v0", SPUItineraries, [DefaultProc]>;
52 //===----------------------------------------------------------------------===//
53 // Calling convention:
54 //===----------------------------------------------------------------------===//
56 include "SPUCallingConv.td"
60 def SPUInstrInfo : InstrInfo {
61 let isLittleEndianEncoding = 1;
65 let InstructionSet = SPUInstrInfo;