LLVM API Documentation

PPCJITInfo.cpp File Reference

#include "PPCJITInfo.h"
#include "PPCRelocations.h"
#include "llvm/CodeGen/MachineCodeEmitter.h"
#include "llvm/Config/alloca.h"
#include "llvm/Support/Debug.h"
#include <set>
#include <iostream>

Include dependency graph for PPCJITInfo.cpp:

Go to the source code of this file.

Defines

#define DEBUG_TYPE   "jit"
#define BUILD_ADDIS(RD, RS, IMM16)   ((15 << 26) | ((RD) << 21) | ((RS) << 16) | ((IMM16) & 65535))
#define BUILD_ORI(RD, RS, UIMM16)   ((24 << 26) | ((RS) << 21) | ((RD) << 16) | ((UIMM16) & 65535))
#define BUILD_MTSPR(RS, SPR)   ((31 << 26) | ((RS) << 21) | ((SPR) << 16) | (467 << 1))
#define BUILD_BCCTRx(BO, BI, LINK)   ((19 << 26) | ((BO) << 21) | ((BI) << 16) | (528 << 1) | ((LINK) & 1))
#define BUILD_LIS(RD, IMM16)   BUILD_ADDIS(RD,0,IMM16)
#define BUILD_MTCTR(RS)   BUILD_MTSPR(RS,9)
#define BUILD_BCTR(LINK)   BUILD_BCCTRx(20,0,LINK)

Functions

static void EmitBranchToAt (void *At, void *To, bool isCall)
void PPC32CompilationCallback ()
unsigned * PPC32CompilationCallbackC (unsigned *StubCallAddrPlus4, unsigned *OrigCallAddrPlus4)

Variables

static TargetJITInfo::JITCompilerFn JITCompilerFunction


Define Documentation

#define BUILD_ADDIS ( RD,
RS,
IMM16   )     ((15 << 26) | ((RD) << 21) | ((RS) << 16) | ((IMM16) & 65535))

Definition at line 26 of file PPCJITInfo.cpp.

#define BUILD_BCCTRx ( BO,
BI,
LINK   )     ((19 << 26) | ((BO) << 21) | ((BI) << 16) | (528 << 1) | ((LINK) & 1))

Definition at line 32 of file PPCJITInfo.cpp.

#define BUILD_BCTR ( LINK   )     BUILD_BCCTRx(20,0,LINK)

Definition at line 38 of file PPCJITInfo.cpp.

Referenced by EmitBranchToAt().

#define BUILD_LIS ( RD,
IMM16   )     BUILD_ADDIS(RD,0,IMM16)

Definition at line 36 of file PPCJITInfo.cpp.

Referenced by EmitBranchToAt().

#define BUILD_MTCTR ( RS   )     BUILD_MTSPR(RS,9)

Definition at line 37 of file PPCJITInfo.cpp.

Referenced by EmitBranchToAt().

#define BUILD_MTSPR ( RS,
SPR   )     ((31 << 26) | ((RS) << 21) | ((SPR) << 16) | (467 << 1))

Definition at line 30 of file PPCJITInfo.cpp.

#define BUILD_ORI ( RD,
RS,
UIMM16   )     ((24 << 26) | ((RS) << 21) | ((RD) << 16) | ((UIMM16) & 65535))

Definition at line 28 of file PPCJITInfo.cpp.

Referenced by EmitBranchToAt().

#define DEBUG_TYPE   "jit"

Definition at line 14 of file PPCJITInfo.cpp.


Function Documentation

static void EmitBranchToAt ( void *  At,
void *  To,
bool  isCall 
) [static]

Definition at line 41 of file PPCJITInfo.cpp.

References BUILD_BCTR, BUILD_LIS, BUILD_MTCTR, and BUILD_ORI.

void PPC32CompilationCallback (  ) 

Definition at line 112 of file PPCJITInfo.cpp.

Referenced by llvm::PPCJITInfo::emitFunctionStub(), and llvm::PPCJITInfo::getLazyResolverFunction().

unsigned* PPC32CompilationCallbackC ( unsigned *  StubCallAddrPlus4,
unsigned *  OrigCallAddrPlus4 
)

Definition at line 118 of file PPCJITInfo.cpp.

References EmitBranchToAt(), JITCompilerFunction, and Offset.


Variable Documentation

TargetJITInfo::JITCompilerFn JITCompilerFunction [static]

Definition at line 24 of file PPCJITInfo.cpp.