1 //===- X86.td - Target definition file for the Intel X86 arch ---*- C++ -*-===//
3 // This is a target description file for the Intel i386 architecture, refered to
4 // here as the "X86" architecture.
6 //===----------------------------------------------------------------------===//
8 // Get the target-independent interfaces which we are implementing...
10 include "../Target.td"
12 //===----------------------------------------------------------------------===//
13 // Register File Description
14 //===----------------------------------------------------------------------===//
16 include "X86RegisterInfo.td"
18 //===----------------------------------------------------------------------===//
19 // Instruction Descriptions
20 //===----------------------------------------------------------------------===//
22 include "X86InstrInfo.td"
24 def X86InstrInfo : InstrInfo {
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.
29 let TSFlagsFields = ["FormBits" , "hasOpSizePrefix" , "Prefix", "TypeBits",
30 "FPFormBits", "printImplicitUses", "Opcode"];
31 let TSFlagsShifts = [ 0, 5, 6, 10,
36 // Specify the callee saved registers.
37 let CalleeSavedRegisters = [ESI, EDI, EBX, EBP];
39 // Yes, pointers are 32-bits in size.
40 let PointerType = i32;
42 // Information about the instructions...
43 let InstructionSet = X86InstrInfo;