1 //===- SparcV9.td - Target Description for SparcV9 Target --*- tablegen -*-===//
3 // The LLVM Compiler Infrastructure
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.
8 //===----------------------------------------------------------------------===//
10 // TableGen target description file for the SparcV9. This is currently used
11 // primarily to generate part of the SparcV9CodeEmitter automatically.
13 //===----------------------------------------------------------------------===//
15 //===----------------------------------------------------------------------===//
16 // Target-independent interfaces which we are implementing
17 //===----------------------------------------------------------------------===//
19 include "../Target.td"
21 //===----------------------------------------------------------------------===//
22 // Register File Description
23 //===----------------------------------------------------------------------===//
25 include "SparcV9RegisterInfo.td"
27 //===----------------------------------------------------------------------===//
28 // Instruction Descriptions
29 //===----------------------------------------------------------------------===//
31 include "SparcV9InstrInfo.td"
33 def SparcV9InstrInfo : InstrInfo {
34 // Define how we want to layout our TargetSpecific information field.
35 let TSFlagsFields = [];
36 let TSFlagsShifts = [];
39 //===----------------------------------------------------------------------===//
40 // Declare the target which we are implementing
41 //===----------------------------------------------------------------------===//
43 def SparcV9 : Target {
44 // FIXME: Specify the callee saved registers.
45 let CalleeSavedRegisters = [];
47 // Pointers are 64-bits in size.
48 let PointerType = i64;
50 // Information about the instructions...
51 let InstructionSet = SparcV9InstrInfo;