LLVM API Documentation

ExternalFunctions.cpp File Reference

#include "Interpreter.h"
#include "llvm/DerivedTypes.h"
#include "llvm/Module.h"
#include "llvm/Support/Streams.h"
#include "llvm/System/DynamicLibrary.h"
#include "llvm/Target/TargetData.h"
#include "llvm/Support/ManagedStatic.h"
#include <csignal>
#include <cstdio>
#include <map>
#include <cmath>
#include <cstring>

Include dependency graph for ExternalFunctions.cpp:

Go to the source code of this file.

Defines

#define getFILE(ptr)   ((FILE*)ptr)

Typedefs

typedef GenericValue(* ExFunc )(FunctionType *, const vector< GenericValue > &)

Functions

static char getTypeID (const Type *Ty)
static ExFunc lookupFunction (const Function *F)
GenericValue lle_X_putchar (FunctionType *FT, const vector< GenericValue > &Args)
GenericValue lle_X__IO_putc (FunctionType *FT, const vector< GenericValue > &Args)
GenericValue lle_X_atexit (FunctionType *FT, const vector< GenericValue > &Args)
GenericValue lle_X_exit (FunctionType *FT, const vector< GenericValue > &Args)
GenericValue lle_X_abort (FunctionType *FT, const vector< GenericValue > &Args)
GenericValue lle_X_malloc (FunctionType *FT, const vector< GenericValue > &Args)
GenericValue lle_X_calloc (FunctionType *FT, const vector< GenericValue > &Args)
GenericValue lle_X_realloc (FunctionType *FT, const vector< GenericValue > &Args)
GenericValue lle_X_free (FunctionType *FT, const vector< GenericValue > &Args)
GenericValue lle_X_atoi (FunctionType *FT, const vector< GenericValue > &Args)
GenericValue lle_X_pow (FunctionType *FT, const vector< GenericValue > &Args)
GenericValue lle_X_sin (FunctionType *FT, const vector< GenericValue > &Args)
GenericValue lle_X_cos (FunctionType *FT, const vector< GenericValue > &Args)
GenericValue lle_X_exp (FunctionType *FT, const vector< GenericValue > &Args)
GenericValue lle_X_sqrt (FunctionType *FT, const vector< GenericValue > &Args)
GenericValue lle_X_log (FunctionType *FT, const vector< GenericValue > &Args)
GenericValue lle_X_floor (FunctionType *FT, const vector< GenericValue > &Args)
GenericValue lle_X_rand (FunctionType *FT, const vector< GenericValue > &Args)
GenericValue lle_X_srand (FunctionType *FT, const vector< GenericValue > &Args)
GenericValue lle_X_puts (FunctionType *FT, const vector< GenericValue > &Args)
GenericValue lle_X_sprintf (FunctionType *FT, const vector< GenericValue > &Args)
GenericValue lle_X_printf (FunctionType *FT, const vector< GenericValue > &Args)
static void ByteswapSCANFResults (const char *Fmt, void *Arg0, void *Arg1, void *Arg2, void *Arg3, void *Arg4, void *Arg5, void *Arg6, void *Arg7, void *Arg8)
GenericValue lle_X_sscanf (FunctionType *FT, const vector< GenericValue > &args)
GenericValue lle_X_scanf (FunctionType *FT, const vector< GenericValue > &args)
GenericValue lle_i_clock (FunctionType *FT, const vector< GenericValue > &Args)
GenericValue lle_X_strcmp (FunctionType *FT, const vector< GenericValue > &Args)
GenericValue lle_X_strcat (FunctionType *FT, const vector< GenericValue > &Args)
GenericValue lle_X_strcpy (FunctionType *FT, const vector< GenericValue > &Args)
static GenericValue size_t_to_GV (size_t n)
static size_t GV_to_size_t (GenericValue GV)
GenericValue lle_X_strlen (FunctionType *FT, const vector< GenericValue > &Args)
GenericValue lle_X_strdup (FunctionType *FT, const vector< GenericValue > &Args)
GenericValue lle_X___strdup (FunctionType *FT, const vector< GenericValue > &Args)
GenericValue lle_X_memset (FunctionType *FT, const vector< GenericValue > &Args)
GenericValue lle_X_memcpy (FunctionType *FT, const vector< GenericValue > &Args)
GenericValue lle_X_memmove (FunctionType *FT, const vector< GenericValue > &Args)
GenericValue lle_X_fopen (FunctionType *FT, const vector< GenericValue > &Args)
GenericValue lle_X_fclose (FunctionType *FT, const vector< GenericValue > &Args)
GenericValue lle_X_feof (FunctionType *FT, const vector< GenericValue > &Args)
GenericValue lle_X_fread (FunctionType *FT, const vector< GenericValue > &Args)
GenericValue lle_X_fwrite (FunctionType *FT, const vector< GenericValue > &Args)
GenericValue lle_X_fgets (FunctionType *FT, const vector< GenericValue > &Args)
GenericValue lle_X_freopen (FunctionType *FT, const vector< GenericValue > &Args)
GenericValue lle_X_fflush (FunctionType *FT, const vector< GenericValue > &Args)
GenericValue lle_X_getc (FunctionType *FT, const vector< GenericValue > &Args)
GenericValue lle_X__IO_getc (FunctionType *F, const vector< GenericValue > &Args)
GenericValue lle_X_fputc (FunctionType *FT, const vector< GenericValue > &Args)
GenericValue lle_X_ungetc (FunctionType *FT, const vector< GenericValue > &Args)
GenericValue lle_X_ferror (FunctionType *FT, const vector< GenericValue > &Args)
GenericValue lle_X_fprintf (FunctionType *FT, const vector< GenericValue > &Args)
GenericValue lle_X___cxa_guard_acquire (FunctionType *FT, const vector< GenericValue > &Args)
GenericValue lle_X___cxa_guard_release (FunctionType *FT, const vector< GenericValue > &Args)

Variables

static ManagedStatic< std::map
< const Function *, ExFunc > > 
Functions
static std::map< std::string,
ExFunc
FuncNames
static InterpreterTheInterpreter


Define Documentation

#define getFILE ( ptr   )     ((FILE*)ptr)


Typedef Documentation

typedef GenericValue(* ExFunc)(FunctionType *, const vector< GenericValue > &)

Definition at line 43 of file ExternalFunctions.cpp.


Function Documentation

static void ByteswapSCANFResults ( const char *  Fmt,
void *  Arg0,
void *  Arg1,
void *  Arg2,
void *  Arg3,
void *  Arg4,
void *  Arg5,
void *  Arg6,
void *  Arg7,
void *  Arg8 
) [static]

static char getTypeID ( const Type Ty  )  [static]

static size_t GV_to_size_t ( GenericValue  GV  )  [static]

GenericValue lle_i_clock ( FunctionType FT,
const vector< GenericValue > &  Args 
)

Definition at line 508 of file ExternalFunctions.cpp.

References llvm::GenericValue::IntVal.

GenericValue lle_X___cxa_guard_acquire ( FunctionType FT,
const vector< GenericValue > &  Args 
)

Definition at line 740 of file ExternalFunctions.cpp.

References llvm::GVTOP(), and llvm::GenericValue::IntVal.

GenericValue lle_X___cxa_guard_release ( FunctionType FT,
const vector< GenericValue > &  Args 
)

Definition at line 754 of file ExternalFunctions.cpp.

References llvm::GVTOP().

GenericValue lle_X___strdup ( FunctionType FT,
const vector< GenericValue > &  Args 
)

GenericValue lle_X__IO_getc ( FunctionType F,
const vector< GenericValue > &  Args 
)

Definition at line 695 of file ExternalFunctions.cpp.

References lle_X_getc().

GenericValue lle_X__IO_putc ( FunctionType FT,
const vector< GenericValue > &  Args 
)

Definition at line 135 of file ExternalFunctions.cpp.

GenericValue lle_X_abort ( FunctionType FT,
const vector< GenericValue > &  Args 
)

Definition at line 160 of file ExternalFunctions.cpp.

GenericValue lle_X_atexit ( FunctionType FT,
const vector< GenericValue > &  Args 
)

GenericValue lle_X_atoi ( FunctionType FT,
const vector< GenericValue > &  Args 
)

Definition at line 195 of file ExternalFunctions.cpp.

References GV, and llvm::GVTOP().

GenericValue lle_X_calloc ( FunctionType FT,
const vector< GenericValue > &  Args 
)

Definition at line 173 of file ExternalFunctions.cpp.

References llvm::FunctionType::getReturnType(), and llvm::PTOGV().

GenericValue lle_X_cos ( FunctionType FT,
const vector< GenericValue > &  Args 
)

Definition at line 219 of file ExternalFunctions.cpp.

References GV.

GenericValue lle_X_exit ( FunctionType FT,
const vector< GenericValue > &  Args 
)

Definition at line 154 of file ExternalFunctions.cpp.

References llvm::Interpreter::exitCalled().

GenericValue lle_X_exp ( FunctionType FT,
const vector< GenericValue > &  Args 
)

Definition at line 227 of file ExternalFunctions.cpp.

References GV.

GenericValue lle_X_fclose ( FunctionType FT,
const vector< GenericValue > &  Args 
)

Definition at line 627 of file ExternalFunctions.cpp.

References getFILE, llvm::GVTOP(), and llvm::GenericValue::IntVal.

GenericValue lle_X_feof ( FunctionType FT,
const vector< GenericValue > &  Args 
)

Definition at line 635 of file ExternalFunctions.cpp.

References getFILE, llvm::GVTOP(), and llvm::GenericValue::IntVal.

GenericValue lle_X_ferror ( FunctionType FT,
const vector< GenericValue > &  Args 
)

Definition at line 718 of file ExternalFunctions.cpp.

References getFILE, llvm::GVTOP(), and llvm::GenericValue::IntVal.

GenericValue lle_X_fflush ( FunctionType FT,
const vector< GenericValue > &  Args 
)

Definition at line 679 of file ExternalFunctions.cpp.

References getFILE, llvm::GVTOP(), and llvm::GenericValue::IntVal.

GenericValue lle_X_fgets ( FunctionType FT,
const vector< GenericValue > &  Args 
)

Definition at line 664 of file ExternalFunctions.cpp.

References getFILE, llvm::GVTOP(), and llvm::PTOGV().

GenericValue lle_X_floor ( FunctionType FT,
const vector< GenericValue > &  Args 
)

Definition at line 251 of file ExternalFunctions.cpp.

References GV.

GenericValue lle_X_fopen ( FunctionType FT,
const vector< GenericValue > &  Args 
)

GenericValue lle_X_fprintf ( FunctionType FT,
const vector< GenericValue > &  Args 
)

Definition at line 727 of file ExternalFunctions.cpp.

References getFILE, llvm::GVTOP(), lle_X_sprintf(), and llvm::PTOGV().

GenericValue lle_X_fputc ( FunctionType FT,
const vector< GenericValue > &  Args 
)

Definition at line 700 of file ExternalFunctions.cpp.

References getFILE, llvm::GVTOP(), and llvm::GenericValue::IntVal.

GenericValue lle_X_fread ( FunctionType FT,
const vector< GenericValue > &  Args 
)

Definition at line 644 of file ExternalFunctions.cpp.

References getFILE, GV_to_size_t(), llvm::GVTOP(), and size_t_to_GV().

GenericValue lle_X_free ( FunctionType FT,
const vector< GenericValue > &  Args 
)

Definition at line 188 of file ExternalFunctions.cpp.

References llvm::GVTOP().

GenericValue lle_X_freopen ( FunctionType FT,
const vector< GenericValue > &  Args 
)

GenericValue lle_X_fwrite ( FunctionType FT,
const vector< GenericValue > &  Args 
)

Definition at line 654 of file ExternalFunctions.cpp.

References getFILE, GV_to_size_t(), llvm::GVTOP(), and size_t_to_GV().

GenericValue lle_X_getc ( FunctionType FT,
const vector< GenericValue > &  Args 
)

Definition at line 687 of file ExternalFunctions.cpp.

References getFILE, llvm::GVTOP(), and llvm::GenericValue::IntVal.

Referenced by lle_X__IO_getc().

GenericValue lle_X_log ( FunctionType FT,
const vector< GenericValue > &  Args 
)

Definition at line 243 of file ExternalFunctions.cpp.

References GV.

GenericValue lle_X_malloc ( FunctionType FT,
const vector< GenericValue > &  Args 
)

Definition at line 166 of file ExternalFunctions.cpp.

References llvm::FunctionType::getReturnType(), and llvm::PTOGV().

GenericValue lle_X_memcpy ( FunctionType FT,
const vector< GenericValue > &  Args 
)

GenericValue lle_X_memmove ( FunctionType FT,
const vector< GenericValue > &  Args 
)

GenericValue lle_X_memset ( FunctionType FT,
const vector< GenericValue > &  Args 
)

GenericValue lle_X_pow ( FunctionType FT,
const vector< GenericValue > &  Args 
)

Definition at line 203 of file ExternalFunctions.cpp.

References GV.

GenericValue lle_X_printf ( FunctionType FT,
const vector< GenericValue > &  Args 
)

Definition at line 388 of file ExternalFunctions.cpp.

References llvm::cout(), lle_X_sprintf(), and llvm::PTOGV().

GenericValue lle_X_putchar ( FunctionType FT,
const vector< GenericValue > &  Args 
)

Definition at line 129 of file ExternalFunctions.cpp.

References llvm::cout().

GenericValue lle_X_puts ( FunctionType FT,
const vector< GenericValue > &  Args 
)

Definition at line 301 of file ExternalFunctions.cpp.

References llvm::GVTOP(), and llvm::GenericValue::IntVal.

GenericValue lle_X_rand ( FunctionType FT,
const vector< GenericValue > &  Args 
)

Definition at line 286 of file ExternalFunctions.cpp.

References llvm::GenericValue::IntVal.

GenericValue lle_X_realloc ( FunctionType FT,
const vector< GenericValue > &  Args 
)

GenericValue lle_X_scanf ( FunctionType FT,
const vector< GenericValue > &  args 
)

GenericValue lle_X_sin ( FunctionType FT,
const vector< GenericValue > &  Args 
)

Definition at line 211 of file ExternalFunctions.cpp.

References GV.

GenericValue lle_X_sprintf ( FunctionType FT,
const vector< GenericValue > &  Args 
)

GenericValue lle_X_sqrt ( FunctionType FT,
const vector< GenericValue > &  Args 
)

Definition at line 235 of file ExternalFunctions.cpp.

References GV.

GenericValue lle_X_srand ( FunctionType FT,
const vector< GenericValue > &  Args 
)

Definition at line 294 of file ExternalFunctions.cpp.

GenericValue lle_X_sscanf ( FunctionType FT,
const vector< GenericValue > &  args 
)

GenericValue lle_X_strcat ( FunctionType FT,
const vector< GenericValue > &  Args 
)

GenericValue lle_X_strcmp ( FunctionType FT,
const vector< GenericValue > &  Args 
)

Definition at line 521 of file ExternalFunctions.cpp.

References llvm::GVTOP(), and llvm::MipsISD::Ret.

GenericValue lle_X_strcpy ( FunctionType FT,
const vector< GenericValue > &  Args 
)

GenericValue lle_X_strdup ( FunctionType FT,
const vector< GenericValue > &  Args 
)

GenericValue lle_X_strlen ( FunctionType FT,
const vector< GenericValue > &  Args 
)

Definition at line 565 of file ExternalFunctions.cpp.

References llvm::GVTOP(), and size_t_to_GV().

GenericValue lle_X_ungetc ( FunctionType FT,
const vector< GenericValue > &  Args 
)

Definition at line 709 of file ExternalFunctions.cpp.

References getFILE, llvm::GVTOP(), and llvm::GenericValue::IntVal.

static ExFunc lookupFunction ( const Function F  )  [static]

static GenericValue size_t_to_GV ( size_t  n  )  [static]

Definition at line 542 of file ExternalFunctions.cpp.

References llvm::GenericValue::IntVal, and llvm::MipsISD::Ret.

Referenced by lle_X_fread(), lle_X_fwrite(), and lle_X_strlen().


Variable Documentation

std::map<std::string, ExFunc> FuncNames [static]

Definition at line 45 of file ExternalFunctions.cpp.

Referenced by lookupFunction().

ManagedStatic<std::map<const Function *, ExFunc> > Functions [static]

Definition at line 47 of file ExternalFunctions.cpp