blob: dabb0dc976063648face724970e716199f18aea9 [file] [log] [blame]
Brian Gaekee785e532004-02-25 19:28:19 +00001//===- 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
Misha Brukman981eefd2004-09-22 20:09:29 +000013//===----------------------------------------------------------------------===//
14// Target-independent interfaces which we are implementing
15//===----------------------------------------------------------------------===//
16
Brian Gaeke57600542004-12-10 04:48:57 +000017include "../Target.td"
Brian Gaekee785e532004-02-25 19:28:19 +000018
19//===----------------------------------------------------------------------===//
20// Register File Description
21//===----------------------------------------------------------------------===//
22
Chris Lattnera85d46e2004-02-28 19:45:39 +000023include "SparcV8RegisterInfo.td"
Misha Brukman981eefd2004-09-22 20:09:29 +000024
25//===----------------------------------------------------------------------===//
26// Instruction Descriptions
27//===----------------------------------------------------------------------===//
28
Chris Lattnera85d46e2004-02-28 19:45:39 +000029include "SparcV8InstrInfo.td"
Brian Gaekee785e532004-02-25 19:28:19 +000030
31def SparcV8InstrInfo : InstrInfo {
Misha Brukman981eefd2004-09-22 20:09:29 +000032 let PHIInst = PHI;
33
34 // Define how we want to layout our target-specific information field.
35 let TSFlagsFields = [];
36 let TSFlagsShifts = [];
Brian Gaekee785e532004-02-25 19:28:19 +000037}
38
Misha Brukman981eefd2004-09-22 20:09:29 +000039//===----------------------------------------------------------------------===//
40// Declare the target which we are implementing
41//===----------------------------------------------------------------------===//
42
Brian Gaekee785e532004-02-25 19:28:19 +000043def SparcV8 : Target {
44 // Pointers are 32-bits in size.
45 let PointerType = i32;
46
Misha Brukman981eefd2004-09-22 20:09:29 +000047 // FIXME: Specify callee-saved registers
Misha Brukmane07c2aa2004-02-25 21:02:21 +000048 let CalleeSavedRegisters = [];
Brian Gaekee785e532004-02-25 19:28:19 +000049
50 // Pull in Instruction Info:
51 let InstructionSet = SparcV8InstrInfo;
52}