diff options
Diffstat (limited to 'lib/ExecutionEngine/Interpreter/Interpreter.cpp')
-rw-r--r-- | lib/ExecutionEngine/Interpreter/Interpreter.cpp | 20 |
1 files changed, 7 insertions, 13 deletions
diff --git a/lib/ExecutionEngine/Interpreter/Interpreter.cpp b/lib/ExecutionEngine/Interpreter/Interpreter.cpp index d3b6fba..4da51e0 100644 --- a/lib/ExecutionEngine/Interpreter/Interpreter.cpp +++ b/lib/ExecutionEngine/Interpreter/Interpreter.cpp @@ -20,7 +20,7 @@ /// create - Create a new interpreter object. This can never fail. /// -ExecutionEngine *Interpreter::create(Module *M, bool TraceMode){ +ExecutionEngine *Interpreter::create(Module *M){ bool isLittleEndian = false; switch (M->getEndianness()) { case Module::LittleEndian: isLittleEndian = true; break; @@ -41,23 +41,21 @@ ExecutionEngine *Interpreter::create(Module *M, bool TraceMode){ break; } - return new Interpreter(M, isLittleEndian, isLongPointer, TraceMode); + return new Interpreter(M, isLittleEndian, isLongPointer); } //===----------------------------------------------------------------------===// // Interpreter ctor - Initialize stuff // -Interpreter::Interpreter(Module *M, bool isLittleEndian, bool isLongPointer, - bool TraceMode) - : ExecutionEngine(M), ExitCode(0), Trace(TraceMode), - CurFrame(-1), TD("lli", isLittleEndian, isLongPointer ? 8 : 4, - isLongPointer ? 8 : 4, isLongPointer ? 8 : 4) { +Interpreter::Interpreter(Module *M, bool isLittleEndian, bool isLongPointer) + : ExecutionEngine(M), ExitCode(0), + TD("lli", isLittleEndian, isLongPointer ? 8 : 4, isLongPointer ? 8 : 4, + isLongPointer ? 8 : 4) { setTargetData(TD); // Initialize the "backend" initializeExecutionEngine(); initializeExternalFunctions(); - CW.setModule(M); // Update Writer emitGlobals(); } @@ -84,16 +82,12 @@ GenericValue Interpreter::run(Function *F, // though. std::vector<GenericValue> ActualArgs; const unsigned ArgCount = F->getFunctionType()->getParamTypes().size(); - for (unsigned i = 0; i < ArgCount; ++i) { + for (unsigned i = 0; i < ArgCount; ++i) ActualArgs.push_back (ArgValues[i]); - } // Set up the function call. callFunction(F, ActualArgs); - // Reset the current frame location to the top of stack - CurFrame = ECStack.size()-1; - // Start executing the function. run(); |