blob: a90c27c0c79e6e532c041e6bd743a1eeb632cde2 [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
Chris Lattner25510802003-08-04 04:59:56 +00008// Get the target-independent interfaces which we are implementing...
Chris Lattner5da8e802003-08-03 15:47:49 +00009//
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 Lattner25510802003-08-04 04:59:56 +000025 let PHIInst = PHI;
Chris Lattner59a4a912003-08-03 21:54:21 +000026
27 // Define how we want to layout our TargetSpecific information field... This
28 // should be kept up-to-date with the fields in the X86InstrInfo.h file.
Chris Lattnerfb2054c2003-08-06 15:32:20 +000029 let TSFlagsFields = ["FormBits" , "hasOpSizePrefix" , "Prefix", "TypeBits",
30 "FPFormBits", "printImplicitUses", "Opcode"];
31 let TSFlagsShifts = [ 0, 5, 6, 10,
32 13, 16, 17];
Chris Lattnera8c3cff2003-08-03 18:19:37 +000033}
34
35def X86 : Target {
36 // Specify the callee saved registers.
Chris Lattner25510802003-08-04 04:59:56 +000037 let CalleeSavedRegisters = [ESI, EDI, EBX, EBP];
Chris Lattnera8c3cff2003-08-03 18:19:37 +000038
39 // Yes, pointers are 32-bits in size.
Chris Lattner25510802003-08-04 04:59:56 +000040 let PointerType = i32;
Chris Lattnera8c3cff2003-08-03 18:19:37 +000041
42 // Information about the instructions...
Chris Lattner25510802003-08-04 04:59:56 +000043 let InstructionSet = X86InstrInfo;
Chris Lattnera8c3cff2003-08-03 18:19:37 +000044}