[vmkit-commits] [vmkit] r83774 - in /vmkit/trunk/lib/N3: PNetLib/PNetLib.cpp VMCore/Assembly.cpp VMCore/CLIJit.cpp VMCore/CLIRuntimeJIT.cpp VMCore/Opcodes.cpp VMCore/VMClass.cpp VMCore/VirtualTables.cpp
Gael Thomas
gael.thomas at lip6.fr
Sun Oct 11 08:15:16 PDT 2009
Author: gthomas
Date: Sun Oct 11 10:15:16 2009
New Revision: 83774
URL: http://llvm.org/viewvc/llvm-project?rev=83774&view=rev
Log:
Fix a bug in PNetLib.cpp::...Copy5.
Add a N3Debug file
Modified:
vmkit/trunk/lib/N3/PNetLib/PNetLib.cpp
vmkit/trunk/lib/N3/VMCore/Assembly.cpp
vmkit/trunk/lib/N3/VMCore/CLIJit.cpp
vmkit/trunk/lib/N3/VMCore/CLIRuntimeJIT.cpp
vmkit/trunk/lib/N3/VMCore/Opcodes.cpp
vmkit/trunk/lib/N3/VMCore/VMClass.cpp
vmkit/trunk/lib/N3/VMCore/VirtualTables.cpp
Modified: vmkit/trunk/lib/N3/PNetLib/PNetLib.cpp
URL: http://llvm.org/viewvc/llvm-project/vmkit/trunk/lib/N3/PNetLib/PNetLib.cpp?rev=83774&r1=83773&r2=83774&view=diff
==============================================================================
--- vmkit/trunk/lib/N3/PNetLib/PNetLib.cpp (original)
+++ vmkit/trunk/lib/N3/PNetLib/PNetLib.cpp Sun Oct 11 10:15:16 2009
@@ -283,50 +283,39 @@
sint32 length) {
const ArrayUInt16 *arraySrc = src->value;
+ // printf("Copy %p %p %d %d %d (%p %d)\n", (void *)dest, (void *)src, destPos, srcPos, length, (void *)dest->value, dest->length);
+
if(destPos == 0 && srcPos == 0 && length == src->length) {
dest->value = arraySrc;
dest->length = length;
} else {
- sint32 newLength = destPos + length;
+ sint32 top = destPos + length;
+ uint16 *buf = (uint16*)alloca((top < dest->length ? dest->length : top) * sizeof(uint16));
- if(newLength <= dest->length) {
- memcpy((uint16*)dest->value->elements + destPos, (uint16*)src->value->elements + srcPos, length<<1);
- } else {
- uint16 *buf = (uint16*)alloca(newLength<<1);
- memcpy(buf, (uint16*)dest->value->elements, destPos<<1);
- memcpy(buf + destPos, (uint16*)src->value->elements + srcPos, length<<1);
- dest->length = newLength;
- dest->value = VMThread::get()->vm->bufToArray(buf, newLength);
- }
+ if(destPos)
+ memcpy(buf, dest->value->elements, destPos * sizeof(uint16));
+
+ memcpy(buf + destPos, src->value->elements + srcPos, length * sizeof(uint16));
+
+ if(top <= dest->length)
+ memcpy(buf + top, dest->value->elements + top, (dest->length - top) * sizeof(uint16));
+ else
+ dest->length = top;
+
+ dest->value = VMThread::get()->vm->bufToArray(buf, dest->length);
}
+ // printf("---> %s\n", mvm::PrintBuffer(VMThread::get()->vm->arrayToUTF8(dest->value)).cString());
}
-// const UTF8* utf8Src = src->value->extract(VMThread::get()->vm, srcPos,
-// srcPos + length);
-// if (destPos == 0) {
-// dest->value = utf8Src;
-// dest->length = dest->value->size;
-// } else {
-// const UTF8* utf8Dest = dest->value->extract(VMThread::get()->vm, 0,
-// destPos);
-// sint32 len1 = utf8Dest->size;
-// sint32 len2 = utf8Src->size;
-// uint16* buf = (uint16*)alloca((len1 + len2) * sizeof(uint16));
-
-// memcpy(buf, utf8Dest->elements, len1 * sizeof(uint16));
-// memcpy(buf + len1, utf8Dest->elements, len2 * sizeof(uint16));
-
-// const UTF8* utf8 = VMThread::get()->vm->bufToUTF8(buf,
-// len1 + len2);
-// dest->value = utf8;
-// dest->length = dest->value->size;
-// }
extern "C" void System_Threading_Monitor_Enter(VMObject* obj) {
+ // printf("Take lock on: %p\n", (void *)obj);
obj->aquire();
}
extern "C" void System_Threading_Monitor_Exit(VMObject* obj) {
+ // printf("Release lock on: %p\n", (void *)obj);
obj->unlock();
+ // printf("Release lock on: %p done\n", (void *)obj);
}
Modified: vmkit/trunk/lib/N3/VMCore/Assembly.cpp
URL: http://llvm.org/viewvc/llvm-project/vmkit/trunk/lib/N3/VMCore/Assembly.cpp?rev=83774&r1=83773&r2=83774&view=diff
==============================================================================
--- vmkit/trunk/lib/N3/VMCore/Assembly.cpp (original)
+++ vmkit/trunk/lib/N3/VMCore/Assembly.cpp Sun Oct 11 10:15:16 2009
@@ -9,7 +9,7 @@
#include <vector>
-#include "debug.h"
+#include "N3Debug.h"
#include "types.h"
#include "Assembly.h"
@@ -833,7 +833,7 @@
lockVar->lock();
if(!isRead) {
Reader* reader = newReader(bytes);
- PRINT_DEBUG(DEBUG_LOAD, 1, LIGHT_GREEN, "Reading %s::%s", mvm::PrintBuffer(vm).cString(),
+ PRINT_DEBUG(N3_LOAD, 1, LIGHT_GREEN, "Reading %s::%s", mvm::PrintBuffer(vm).cString(),
mvm::PrintBuffer(this).cString());
textSection = new(allocator, "Section") Section();
Modified: vmkit/trunk/lib/N3/VMCore/CLIJit.cpp
URL: http://llvm.org/viewvc/llvm-project/vmkit/trunk/lib/N3/VMCore/CLIJit.cpp?rev=83774&r1=83773&r2=83774&view=diff
==============================================================================
--- vmkit/trunk/lib/N3/VMCore/CLIJit.cpp (original)
+++ vmkit/trunk/lib/N3/VMCore/CLIJit.cpp Sun Oct 11 10:15:16 2009
@@ -7,14 +7,6 @@
//
//===----------------------------------------------------------------------===//
-#define DEBUG 0
-#define N3_COMPILE 0
-#define N3_EXECUTE 0
-
-
-
-
-
#include "mvm/JIT.h"
#include "Assembly.h"
@@ -42,7 +34,8 @@
#include <llvm/Support/CFG.h>
#include <llvm/Support/MutexGuard.h>
-#include "debug.h"
+#include "N3Debug.h"
+
#include "types.h"
using namespace llvm;
@@ -927,7 +920,7 @@
Function* CLIJit::compileNative(VMGenericMethod* genMethod) {
PRINT_DEBUG(N3_COMPILE, 1, COLOR_NORMAL, "native compile %s\n",
- mvm::PrintBuffer(compilingMethod));
+ mvm::PrintBuffer(compilingMethod).cString());
const FunctionType *funcType = compilingMethod->getSignature(genMethod);
@@ -1125,22 +1118,24 @@
#if N3_EXECUTE > 1
static void printArgs(std::vector<llvm::Value*> args, BasicBlock* insertAt) {
+ N3 *vm = VMThread::get()->vm;
+
for (std::vector<llvm::Value*>::iterator i = args.begin(),
e = args.end(); i!= e; ++i) {
llvm::Value* arg = *i;
const llvm::Type* type = arg->getType();
if (type == Type::getInt8Ty(getGlobalContext()) || type == Type::getInt16Ty(getGlobalContext()) || type == Type::getInt1Ty(getGlobalContext())) {
- CallInst::Create(module->printIntLLVM, new ZExtInst(arg, Type::getInt32Ty(getGlobalContext()), "", insertAt), "", insertAt);
+ CallInst::Create(vm->module->printIntLLVM, new ZExtInst(arg, Type::getInt32Ty(getGlobalContext()), "", insertAt), "", insertAt);
} else if (type == Type::getInt32Ty(getGlobalContext())) {
- CallInst::Create(module->printIntLLVM, arg, "", insertAt);
+ CallInst::Create(vm->module->printIntLLVM, arg, "", insertAt);
} else if (type == Type::getInt64Ty(getGlobalContext())) {
- CallInst::Create(module->printLongLLVM, arg, "", insertAt);
+ CallInst::Create(vm->module->printLongLLVM, arg, "", insertAt);
} else if (type == Type::getFloatTy(getGlobalContext())) {
- CallInst::Create(module->printFloatLLVM, arg, "", insertAt);
+ CallInst::Create(vm->module->printFloatLLVM, arg, "", insertAt);
} else if (type == Type::getDoubleTy(getGlobalContext())) {
- CallInst::Create(module->printDoubleLLVM, arg, "", insertAt);
+ CallInst::Create(vm->module->printDoubleLLVM, arg, "", insertAt);
} else {
- CallInst::Create(module->printIntLLVM, new PtrToIntInst(arg, Type::getInt32Ty(getGlobalContext()), "", insertAt), "", insertAt);
+ CallInst::Create(vm->module->printIntLLVM, new PtrToIntInst(arg, Type::getInt32Ty(getGlobalContext()), "", insertAt), "", insertAt);
}
}
@@ -1463,6 +1458,7 @@
}
delete jit;
+ // printf("Compiling: %s\n", mvm::PrintBuffer(meth).cString());
return func;
}
Modified: vmkit/trunk/lib/N3/VMCore/CLIRuntimeJIT.cpp
URL: http://llvm.org/viewvc/llvm-project/vmkit/trunk/lib/N3/VMCore/CLIRuntimeJIT.cpp?rev=83774&r1=83773&r2=83774&view=diff
==============================================================================
--- vmkit/trunk/lib/N3/VMCore/CLIRuntimeJIT.cpp (original)
+++ vmkit/trunk/lib/N3/VMCore/CLIRuntimeJIT.cpp Sun Oct 11 10:15:16 2009
@@ -118,7 +118,7 @@
Enveloppe* enveloppe = cache->enveloppe;
VMCommonClass* ocl = obj->classOf;
VMMethod* orig = enveloppe->originalMethod;
-
+
CacheNode* rcache = 0;
CacheNode* tmp = enveloppe->firstCache;
CacheNode* last = tmp;
Modified: vmkit/trunk/lib/N3/VMCore/Opcodes.cpp
URL: http://llvm.org/viewvc/llvm-project/vmkit/trunk/lib/N3/VMCore/Opcodes.cpp?rev=83774&r1=83773&r2=83774&view=diff
==============================================================================
--- vmkit/trunk/lib/N3/VMCore/Opcodes.cpp (original)
+++ vmkit/trunk/lib/N3/VMCore/Opcodes.cpp Sun Oct 11 10:15:16 2009
@@ -7,9 +7,7 @@
//
//===----------------------------------------------------------------------===//
-#define DEBUG 0
-#define N3_COMPILE 0
-#define N3_EXECUTE 0
+#include "N3Debug.h"
#include <cstring>
@@ -28,8 +26,6 @@
#include "mvm/JIT.h"
-#include "debug.h"
-
#include "Assembly.h"
#include "CLIJit.h"
#include "CLIString.h"
Modified: vmkit/trunk/lib/N3/VMCore/VMClass.cpp
URL: http://llvm.org/viewvc/llvm-project/vmkit/trunk/lib/N3/VMCore/VMClass.cpp?rev=83774&r1=83773&r2=83774&view=diff
==============================================================================
--- vmkit/trunk/lib/N3/VMCore/VMClass.cpp (original)
+++ vmkit/trunk/lib/N3/VMCore/VMClass.cpp Sun Oct 11 10:15:16 2009
@@ -13,7 +13,7 @@
#include "llvm/DerivedTypes.h"
#include "llvm/Module.h"
-#include "debug.h"
+#include "N3Debug.h"
#include "types.h"
#include "mvm/JIT.h"
#include "mvm/PrintBuffer.h"
Modified: vmkit/trunk/lib/N3/VMCore/VirtualTables.cpp
URL: http://llvm.org/viewvc/llvm-project/vmkit/trunk/lib/N3/VMCore/VirtualTables.cpp?rev=83774&r1=83773&r2=83774&view=diff
==============================================================================
--- vmkit/trunk/lib/N3/VMCore/VirtualTables.cpp (original)
+++ vmkit/trunk/lib/N3/VMCore/VirtualTables.cpp Sun Oct 11 10:15:16 2009
@@ -150,7 +150,6 @@
baseClass->CALL_TRACER;
}
-
void VMMethod::TRACER {
delegatee->MARK_AND_TRACE;
//signature->MARK_AND_TRACE;
More information about the vmkit-commits
mailing list