the various ConstantExpr::get*Ty methods existed to work with issues around
[llvm/stm8.git] / lib / Target / CellSPU / SPU.td
blob8327fe03d7f866d535296a26974bd670968d2d1e
1 //===- SPU.td - Describe the STI Cell SPU 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 // 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> {
22   dag Fragment = frag;
25 //===----------------------------------------------------------------------===//
26 // Register File Description
27 //===----------------------------------------------------------------------===//
29 include "SPURegisterInfo.td"
31 //===----------------------------------------------------------------------===//
32 // Instruction formats, instructions
33 //===----------------------------------------------------------------------===//
35 include "SPUNodes.td"
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", "">;
46 def LargeMemFeature:
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"
58 // Target:
60 def SPUInstrInfo : InstrInfo {
61   let isLittleEndianEncoding = 1;
64 def SPU : Target {
65   let InstructionSet = SPUInstrInfo;