diff options
author | Evan Cheng <evan.cheng@apple.com> | 2008-02-20 07:55:26 +0000 |
---|---|---|
committer | Evan Cheng <evan.cheng@apple.com> | 2008-02-20 07:55:26 +0000 |
commit | f4d008f04d490a4a227d085cb7efea1950ae5a1b (patch) | |
tree | c36918563c86250c3f9ae8e5c2d50f598394dd71 /lib | |
parent | 0fa65bd06d6ee25913d80f31d3c2a32b2dc4becf (diff) | |
download | external_llvm-f4d008f04d490a4a227d085cb7efea1950ae5a1b.zip external_llvm-f4d008f04d490a4a227d085cb7efea1950ae5a1b.tar.gz external_llvm-f4d008f04d490a4a227d085cb7efea1950ae5a1b.tar.bz2 |
Added memmove to interpreter external functions list. Patch by Daniel Dunbar.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@47363 91177308-0d34-0410-b5e6-96231b3b80d8
Diffstat (limited to 'lib')
-rw-r--r-- | lib/ExecutionEngine/Interpreter/ExternalFunctions.cpp | 9 |
1 files changed, 9 insertions, 0 deletions
diff --git a/lib/ExecutionEngine/Interpreter/ExternalFunctions.cpp b/lib/ExecutionEngine/Interpreter/ExternalFunctions.cpp index b5f623d..c6dde95 100644 --- a/lib/ExecutionEngine/Interpreter/ExternalFunctions.cpp +++ b/lib/ExecutionEngine/Interpreter/ExternalFunctions.cpp @@ -597,6 +597,14 @@ GenericValue lle_X_memcpy(FunctionType *FT, const vector<GenericValue> &Args) { return PTOGV(memcpy((char*)GVTOP(Args[0]), (char*)GVTOP(Args[1]), count)); } +// void *memcpy(void *Dest, void *src, size_t Size); +GenericValue lle_X_memmove(FunctionType *FT, const vector<GenericValue> &Args) { + assert(Args.size() == 3); + assert(isa<PointerType>(FT->getReturnType()) && "memmove must return pointer"); + size_t count = GV_to_size_t (Args[2]); + return PTOGV(memmove((char*)GVTOP(Args[0]), (char*)GVTOP(Args[1]), count)); +} + //===----------------------------------------------------------------------===// // IO Functions... //===----------------------------------------------------------------------===// @@ -793,6 +801,7 @@ void Interpreter::initializeExternalFunctions() { FuncNames["lle_X___strdup"] = lle_X___strdup; FuncNames["lle_X_memset"] = lle_X_memset; FuncNames["lle_X_memcpy"] = lle_X_memcpy; + FuncNames["lle_X_memmove"] = lle_X_memmove; FuncNames["lle_X_fopen"] = lle_X_fopen; FuncNames["lle_X_fclose"] = lle_X_fclose; |