aboutsummaryrefslogtreecommitdiff
path: root/lib/ExecutionEngine/Interpreter/ExternalFunctions.cpp
diff options
context:
space:
mode:
authorChris Lattner <sabre@nondot.org>2003-10-18 05:55:25 +0000
committerChris Lattner <sabre@nondot.org>2003-10-18 05:55:25 +0000
commit4c6654963dfa4b91c702a913f3715c4a207472d2 (patch)
tree3f363fc907f145e6246db39625a054c224e12526 /lib/ExecutionEngine/Interpreter/ExternalFunctions.cpp
parenteff112c6c3d018ac97522618e71c8c0956c451ee (diff)
Interpret the new varargs intrinsics correctly
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@9222 91177308-0d34-0410-b5e6-96231b3b80d8
Diffstat (limited to 'lib/ExecutionEngine/Interpreter/ExternalFunctions.cpp')
-rw-r--r--lib/ExecutionEngine/Interpreter/ExternalFunctions.cpp17
1 files changed, 6 insertions, 11 deletions
diff --git a/lib/ExecutionEngine/Interpreter/ExternalFunctions.cpp b/lib/ExecutionEngine/Interpreter/ExternalFunctions.cpp
index b92e3c6a02..44ba87f3b3 100644
--- a/lib/ExecutionEngine/Interpreter/ExternalFunctions.cpp
+++ b/lib/ExecutionEngine/Interpreter/ExternalFunctions.cpp
@@ -687,14 +687,12 @@ GenericValue lle_X_fprintf(FunctionType *M, const vector<GenericValue> &Args) {
// LLVM Intrinsic Functions...
//===----------------------------------------------------------------------===//
-// void llvm.va_start(<va_list> *) - Implement the va_start operation...
+// <va_list> llvm.va_start() - Implement the va_start operation...
GenericValue llvm_va_start(FunctionType *F, const vector<GenericValue> &Args) {
- assert(Args.size() == 1);
- GenericValue *VAListP = (GenericValue *)GVTOP(Args[0]);
+ assert(Args.size() == 0);
GenericValue Val;
Val.UIntVal = 0; // Start at the first '...' argument...
- TheInterpreter->StoreValueToMemory(Val, VAListP, Type::UIntTy);
- return GenericValue();
+ return Val;
}
// void llvm.va_end(<va_list> *) - Implement the va_end operation...
@@ -703,13 +701,10 @@ GenericValue llvm_va_end(FunctionType *F, const vector<GenericValue> &Args) {
return GenericValue(); // Noop!
}
-// void llvm.va_copy(<va_list> *, <va_list>) - Implement the va_copy
-// operation...
+// <va_list> llvm.va_copy(<va_list>) - Implement the va_copy operation...
GenericValue llvm_va_copy(FunctionType *F, const vector<GenericValue> &Args) {
- assert(Args.size() == 2);
- GenericValue *DestVAList = (GenericValue*)GVTOP(Args[0]);
- TheInterpreter->StoreValueToMemory(Args[1], DestVAList, Type::UIntTy);
- return GenericValue();
+ assert(Args.size() == 1);
+ return Args[0];
}
} // End extern "C"