Sparc.td revision 0d170a7969e7e36ad00afe596f2937f0c74d2b49
1//===- SparcV8.td - Describe the SparcV8 Target Machine ---------*- C++ -*-===//
2// 
3//                     The LLVM Compiler Infrastructure
4//
5// This file was developed by the LLVM research group and is distributed under
6// the University of Illinois Open Source License. See LICENSE.TXT for details.
7// 
8//===----------------------------------------------------------------------===//
9//
10//
11//===----------------------------------------------------------------------===//
12
13//===----------------------------------------------------------------------===//
14// Target-independent interfaces which we are implementing
15//===----------------------------------------------------------------------===//
16
17include "../Target.td"
18
19//===----------------------------------------------------------------------===//
20// PowerPC Subtarget features.
21//
22 
23def Feature64Bit     : SubtargetFeature<"64bit", "bool", "Is64Bit",
24                                        "Enable 64-bit instructions">;
25
26
27//===----------------------------------------------------------------------===//
28// Register File Description
29//===----------------------------------------------------------------------===//
30
31include "SparcV8RegisterInfo.td"
32
33//===----------------------------------------------------------------------===//
34// Instruction Descriptions
35//===----------------------------------------------------------------------===//
36
37include "SparcV8InstrInfo.td"
38
39def SparcV8InstrInfo : InstrInfo {
40  let PHIInst = PHI;
41
42  // Define how we want to layout our target-specific information field.
43  let TSFlagsFields = [];
44  let TSFlagsShifts = [];
45}
46
47//===----------------------------------------------------------------------===//
48// SPARC processors supported.
49//===----------------------------------------------------------------------===//
50
51def : Processor<"generic", NoItineraries, []>;
52def : Processor<"v8", NoItineraries, []>;
53def : Processor<"v9", NoItineraries, [Feature64Bit]>;
54
55//===----------------------------------------------------------------------===//
56// Declare the target which we are implementing
57//===----------------------------------------------------------------------===//
58
59def SparcV8 : Target {
60  // Pointers are 32-bits in size.
61  let PointerType = i32;
62
63  // FIXME: Specify callee-saved registers
64  let CalleeSavedRegisters = [];
65
66  // Pull in Instruction Info:
67  let InstructionSet = SparcV8InstrInfo;
68}
69