LLVM API Documentation

X86CodeEmitter.cpp File Reference

#include "X86TargetMachine.h"
#include "X86Relocations.h"
#include "X86.h"
#include "llvm/PassManager.h"
#include "llvm/CodeGen/MachineCodeEmitter.h"
#include "llvm/CodeGen/MachineFunctionPass.h"
#include "llvm/CodeGen/MachineInstr.h"
#include "llvm/CodeGen/Passes.h"
#include "llvm/Function.h"
#include "llvm/ADT/Statistic.h"
#include "llvm/Target/TargetOptions.h"
#include <iostream>

Include dependency graph for X86CodeEmitter.cpp:

Go to the source code of this file.

Namespaces

namespace  N86

Enumerations

enum  {
  N86::EAX = 0, N86::ECX = 1, N86::EDX = 2, N86::EBX = 3,
  N86::ESP = 4, N86::EBP = 5, N86::ESI = 6, N86::EDI = 7
}

Functions

FunctionPassllvm::createX86CodeEmitterPass (MachineCodeEmitter &MCE)
static unsigned getX86RegNum (unsigned RegNo)
static unsigned char ModRMByte (unsigned Mod, unsigned RegOpcode, unsigned RM)
static bool isDisp8 (int Value)
static unsigned sizeOfImm (const TargetInstrDescriptor &Desc)

Variables

Statistic NumEmitted ("x86-emitter","Number of machine instructions emitted")
const X86InstrInfoII
MachineCodeEmitterMCE
std::map< const MachineBasicBlock *,
unsigned > 
BasicBlockAddrs
std::vector< std::pair< const
MachineBasicBlock *, unsigned > > 
BBRefs


Function Documentation

static unsigned getX86RegNum ( unsigned  RegNo  )  [static]

Definition at line 179 of file X86CodeEmitter.cpp.

References N86::EAX, N86::EBP, N86::EBX, N86::ECX, N86::EDI, N86::EDX, N86::ESI, and N86::ESP.

static bool isDisp8 ( int  Value  )  [static]

Definition at line 229 of file X86CodeEmitter.cpp.

static unsigned char ModRMByte ( unsigned  Mod,
unsigned  RegOpcode,
unsigned  RM 
) [inline, static]

Definition at line 206 of file X86CodeEmitter.cpp.

static unsigned sizeOfImm ( const TargetInstrDescriptor Desc  )  [static]

Definition at line 341 of file X86CodeEmitter.cpp.

References llvm::X86II::Imm16, llvm::X86II::Imm32, llvm::X86II::Imm8, llvm::X86II::ImmMask, and llvm::TargetInstrDescriptor::TSFlags.


Variable Documentation

std::map<const MachineBasicBlock*, unsigned> BasicBlockAddrs

Definition at line 38 of file X86CodeEmitter.cpp.

std::vector<std::pair<const MachineBasicBlock *, unsigned> > BBRefs

Definition at line 39 of file X86CodeEmitter.cpp.

const X86InstrInfo* II

Definition at line 36 of file X86CodeEmitter.cpp.

MachineCodeEmitter& MCE

Definition at line 37 of file X86CodeEmitter.cpp.

Statistic NumEmitted("x86-emitter","Number of machine instructions emitted") [static]