LLVM API Documentation

PPCJITInfo.cpp File Reference

#include "PPCJITInfo.h"
#include "PPCRelocations.h"
#include "PPCTargetMachine.h"
#include "llvm/Function.h"
#include "llvm/CodeGen/MachineCodeEmitter.h"
#include "llvm/System/Memory.h"
#include "llvm/Support/Debug.h"

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_ORIS(RD, RS, UIMM16)   ((25 << 26) | ((RS) << 21) | ((RD) << 16) | ((UIMM16) & 65535))
#define BUILD_RLDICR(RD, RS, SH, ME)
#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_B(TARGET, LINK)   ((18 << 26) | (((TARGET) & 0x00FFFFFF) << 2) | ((LINK) & 1))
#define BUILD_LIS(RD, IMM16)   BUILD_ADDIS(RD,0,IMM16)
#define BUILD_SLDI(RD, RS, IMM6)   BUILD_RLDICR(RD,RS,IMM6,63-IMM6)
#define BUILD_MTCTR(RS)   BUILD_MTSPR(RS,9)
#define BUILD_BCTR(LINK)   BUILD_BCCTRx(20,0,LINK)

Functions

static void EmitBranchToAt (uint64_t At, uint64_t To, bool isCall, bool is64Bit)
void PPC32CompilationCallback ()
void PPC64CompilationCallback ()
void * PPCCompilationCallbackC (unsigned *StubCallAddrPlus4, unsigned *OrigCallAddrPlus4, bool is64Bit)

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_B ( TARGET,
LINK   )     ((18 << 26) | (((TARGET) & 0x00FFFFFF) << 2) | ((LINK) & 1))

Definition at line 39 of file PPCJITInfo.cpp.

Referenced by EmitBranchToAt().

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

Definition at line 37 of file PPCJITInfo.cpp.

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

Definition at line 46 of file PPCJITInfo.cpp.

Referenced by EmitBranchToAt().

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

Definition at line 43 of file PPCJITInfo.cpp.

Referenced by EmitBranchToAt().

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

Definition at line 45 of file PPCJITInfo.cpp.

Referenced by EmitBranchToAt().

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

Definition at line 35 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 BUILD_ORIS ( RD,
RS,
UIMM16   )     ((25 << 26) | ((RS) << 21) | ((RD) << 16) | ((UIMM16) & 65535))

Definition at line 30 of file PPCJITInfo.cpp.

Referenced by EmitBranchToAt().

#define BUILD_RLDICR ( RD,
RS,
SH,
ME   ) 

Value:

((30 << 26) | ((RS) << 21) | ((RD) << 16) | (((SH) & 31) << 11) | \
   (((ME) & 63) << 6) | (1 << 2) | ((((SH) >> 5) & 1) << 1))

Definition at line 32 of file PPCJITInfo.cpp.

#define BUILD_SLDI ( RD,
RS,
IMM6   )     BUILD_RLDICR(RD,RS,IMM6,63-IMM6)

Definition at line 44 of file PPCJITInfo.cpp.

Referenced by EmitBranchToAt().

#define DEBUG_TYPE   "jit"

Definition at line 14 of file PPCJITInfo.cpp.


Function Documentation

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

Definition at line 48 of file PPCJITInfo.cpp.

References BUILD_B, BUILD_BCTR, BUILD_LIS, BUILD_MTCTR, BUILD_ORI, BUILD_ORIS, BUILD_SLDI, and Offset.

void PPC32CompilationCallback (  ) 

void PPC64CompilationCallback (  ) 

void* PPCCompilationCallbackC ( unsigned *  StubCallAddrPlus4,
unsigned *  OrigCallAddrPlus4,
bool  is64Bit 
)

Definition at line 273 of file PPCJITInfo.cpp.

References EmitBranchToAt(), JITCompilerFunction, and Offset.


Variable Documentation

TargetJITInfo::JITCompilerFn JITCompilerFunction [static]

Definition at line 24 of file PPCJITInfo.cpp.