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 {
36 // Define how we want to layout our TargetSpecific information field.
37 let TSFlagsFields = [];
38 let TSFlagsShifts = [];
41 //===----------------------------------------------------------------------===//
42 // Declare the target which we are implementing
43 //===----------------------------------------------------------------------===//
45 def SparcV9 : Target {
46 // FIXME: Specify the callee saved registers.
47 let CalleeSavedRegisters = [];
49 // Pointers are 64-bits in size.
50 let PointerType = i64;
52 // Information about the instructions...
53 let InstructionSet = SparcV9InstrInfo;