//===-- X86CodeEmitter.cpp - Convert X86 code to machine code -------------===////// The LLVM Compiler Infrastructure//// This file is distributed under the University of Illinois Open Source// License. See LICENSE.TXT for details.////===----------------------------------------------------------------------===////// This file contains the pass that transforms the X86 machine instructions into// relocatable machine code.////===----------------------------------------------------------------------===//#define DEBUG_TYPE "x86-emitter"#include"X86InstrInfo.h"#include"X86JITInfo.h"#include"X86Subtarget.h"#include"X86TargetMachine.h"#include"X86Relocations.h"#include"X86.h"#include"llvm/LLVMContext.h"#include"llvm/PassManager.h"#include"llvm/CodeGen/JITCodeEmitter.h"#include"llvm/CodeGen/MachineFunctionPass.h"#include"llvm/CodeGen/MachineInstr.h"#include"llvm/CodeGen/MachineModuleInfo.h"#include"llvm/CodeGen/Passes.h"#include"llvm/ADT/Statistic.h"#include"llvm/MC/MCCodeEmitter.h"#include"llvm/MC/MCExpr.h"#include"llvm/MC/MCInst.h"#include"llvm/Support/Debug.h"#include"llvm/Support/ErrorHandling.h"#include"llvm/Support/raw_ostream.h"#include"llvm/Target/TargetOptions.h"usingnamespacellvm;STATISTIC(NumEmitted,"Number of machine instructions emitted");namespace{