blob: 1c01663de02fb3c03b8601c2e118e6b5356f91d8 [file] [log] [blame]
Misha Brukman2a8350a2005-02-05 02:24:26 +00001//===- Alpha.td - Describe the Alpha Target Machine --------*- tablegen -*-===//
Andrew Lenharth304d0f32005-01-22 23:41:55 +00002//
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// Get the target-independent interfaces which we are implementing...
14//
15include "../Target.td"
16
17//Alpha is little endian
18
19//===----------------------------------------------------------------------===//
20// Register File Description
21//===----------------------------------------------------------------------===//
22
23include "AlphaRegisterInfo.td"
24
25//===----------------------------------------------------------------------===//
26// Instruction Descriptions
27//===----------------------------------------------------------------------===//
28
29include "AlphaInstrInfo.td"
30
31def AlphaInstrInfo : InstrInfo {
32 let PHIInst = PHI;
33
34 // Define how we want to layout our target-specific information field.
35 // let TSFlagsFields = [];
36 // let TSFlagsShifts = [];
37}
38
39def Alpha : Target {
40 // Pointers on Alpha are 64-bits in size.
41 let PointerType = i64;
42
43 let CalleeSavedRegisters =
44 //saved regs
45 [R9, R10, R11, R12, R13, R14,
46 //Frame pointer
Andrew Lenharth2513ddc2005-04-05 20:51:46 +000047// R15,
Andrew Lenharth304d0f32005-01-22 23:41:55 +000048 //return address
Andrew Lenharth3f5aa1c2005-06-23 23:42:05 +000049// R26,
Andrew Lenharth304d0f32005-01-22 23:41:55 +000050 //Stack Pointer
Andrew Lenharth2513ddc2005-04-05 20:51:46 +000051// R30,
Andrew Lenharth304d0f32005-01-22 23:41:55 +000052 F2, F3, F4, F5, F6, F7, F8, F9];
53
54 // Pull in Instruction Info:
55 let InstructionSet = AlphaInstrInfo;
56}