blob: bb8dcb291cb7cda586e734a962de109c99b1c147 [file] [log] [blame]
Chris Lattner5da8e802003-08-03 15:47:49 +00001//===- X86.td - Target definition file for the Intel X86 arch ---*- C++ -*-===//
2//
3// This is a target description file for the Intel i386 architecture, refered to
4// here as the "X86" architecture.
5//
6//===----------------------------------------------------------------------===//
7
8// Get the target independent interfaces which we are implementing...
9//
10include "../Target.td"
11
12//===----------------------------------------------------------------------===//
13// Register File Description
14//===----------------------------------------------------------------------===//
15
16include "X86RegisterInfo.td"
17
Chris Lattnera8c3cff2003-08-03 18:19:37 +000018//===----------------------------------------------------------------------===//
19// Instruction Descriptions
20//===----------------------------------------------------------------------===//
21
Chris Lattner59a4a912003-08-03 21:54:21 +000022include "X86InstrInfo.td"
23
Chris Lattnera8c3cff2003-08-03 18:19:37 +000024def X86InstrInfo : InstrInfo {
Chris Lattner59a4a912003-08-03 21:54:21 +000025 set PHIInst = PHI;
26 set NOOPInst = NOOP;
27
28 // Define how we want to layout our TargetSpecific information field... This
29 // should be kept up-to-date with the fields in the X86InstrInfo.h file.
30 set TSFlagsFields = ["FormBits", "isVoid", "hasOpSizePrefix", "Prefix",
31 "TypeBits", "FPFormBits", "printImplicitUses", "Opcode"];
32 set TSFlagsShifts = [ 0, 5, 6, 7,
33 11, 14, 17, 18];
Chris Lattnera8c3cff2003-08-03 18:19:37 +000034}
35
36def X86 : Target {
37 // Specify the callee saved registers.
38 set CalleeSavedRegisters = [ESI, EDI, EBX, EBP];
39
40 // Yes, pointers are 32-bits in size.
41 set PointerType = i32;
42
43 // Information about the instructions...
44 set InstructionSet = X86InstrInfo;
45}