[vmkit-commits] [vmkit] r198895 - if_icmplt is an if_icmplt, not le...
Gael Thomas
gael.thomas at lip6.fr
Thu Jan 9 14:46:57 PST 2014
Author: gthomas
Date: Thu Jan 9 16:46:57 2014
New Revision: 198895
URL: http://llvm.org/viewvc/llvm-project?rev=198895&view=rev
Log:
if_icmplt is an if_icmplt, not le...
Modified:
vmkit/branches/mcjit/include/j3/j3lib.h
vmkit/branches/mcjit/include/j3/j3options.h
vmkit/branches/mcjit/lib/j3/openjdk/j3lib.cc
vmkit/branches/mcjit/lib/j3/openjdk/j3openjdk.cc
vmkit/branches/mcjit/lib/j3/vm/j3.cc
vmkit/branches/mcjit/lib/j3/vm/j3codegen-debug.cc
vmkit/branches/mcjit/lib/j3/vm/j3codegen.cc
vmkit/branches/mcjit/lib/j3/vm/j3options.cc
Modified: vmkit/branches/mcjit/include/j3/j3lib.h
URL: http://llvm.org/viewvc/llvm-project/vmkit/branches/mcjit/include/j3/j3lib.h?rev=198895&r1=198894&r2=198895&view=diff
==============================================================================
--- vmkit/branches/mcjit/include/j3/j3lib.h (original)
+++ vmkit/branches/mcjit/include/j3/j3lib.h Thu Jan 9 16:46:57 2014
@@ -12,6 +12,7 @@ namespace j3 {
public:
static const char* systemClassesArchives();
static const char* systemLibraryPath();
+ static const char* extDirs();
static int loadSystemLibraries(std::vector<void*, vmkit::StdAllocator<void*> >* handles);
static void bootstrap(J3* vm);
Modified: vmkit/branches/mcjit/include/j3/j3options.h
URL: http://llvm.org/viewvc/llvm-project/vmkit/branches/mcjit/include/j3/j3options.h?rev=198895&r1=198894&r2=198895&view=diff
==============================================================================
--- vmkit/branches/mcjit/include/j3/j3options.h (original)
+++ vmkit/branches/mcjit/include/j3/j3options.h Thu Jan 9 16:46:57 2014
@@ -28,6 +28,7 @@ namespace j3 {
const char* bootClasspath;
const char* systemLibraryPath;
const char* classpath;
+ const char* extDirs;
bool debugEnterIndent;
uint32_t genDebugExecute;
uint32_t debugExecute;
Modified: vmkit/branches/mcjit/lib/j3/openjdk/j3lib.cc
URL: http://llvm.org/viewvc/llvm-project/vmkit/branches/mcjit/lib/j3/openjdk/j3lib.cc?rev=198895&r1=198894&r2=198895&view=diff
==============================================================================
--- vmkit/branches/mcjit/lib/j3/openjdk/j3lib.cc (original)
+++ vmkit/branches/mcjit/lib/j3/openjdk/j3lib.cc Thu Jan 9 16:46:57 2014
@@ -59,6 +59,10 @@ const char* J3Lib::systemLibraryPath() {
return OPENJDK_LIBPATH;
}
+const char* J3Lib::extDirs() {
+ return OPENJDK_HOME"jre/lib/ext";
+}
+
int J3Lib::loadSystemLibraries(std::vector<void*, vmkit::StdAllocator<void*> >* nativeLibraries) {
/* JavaRuntimeSupport checks for a symbol defined in this library */
void* h0 = dlopen(OPENJDK_LIBPATH"/libinstrument"SHLIBEXT, RTLD_LAZY | RTLD_GLOBAL);
@@ -74,33 +78,3 @@ int J3Lib::loadSystemLibraries(std::vect
return 0;
}
-
-#if 0
-// from openjdk
-
-
-// Creates the initial Thread
-static oop create_initial_thread(Handle thread_group, JavaThread* thread, TRAPS) {
- Klass* k = SystemDictionary::resolve_or_fail(vmSymbols::java_lang_Thread(), true, CHECK_NULL);
- instanceKlassHandle klass (THREAD, k);
- instanceHandle thread_oop = klass->allocate_instance_handle(CHECK_NULL);
-
- java_lang_Thread::set_thread(thread_oop(), thread);
- java_lang_Thread::set_priority(thread_oop(), NormPriority);
- thread->set_threadObj(thread_oop());
-
- Handle string = java_lang_String::create_from_str("main", CHECK_NULL);
-
- JavaValue result(T_VOID);
- JavaCalls::call_special(&result, thread_oop,
- klass,
- vmSymbols::object_initializer_name(),
- vmSymbols::threadgroup_string_void_signature(),
- thread_group,
- string,
- CHECK_NULL);
- return thread_oop();
-}
-
-// Creates the initial ThreadGroup
-#endif
Modified: vmkit/branches/mcjit/lib/j3/openjdk/j3openjdk.cc
URL: http://llvm.org/viewvc/llvm-project/vmkit/branches/mcjit/lib/j3/openjdk/j3openjdk.cc?rev=198895&r1=198894&r2=198895&view=diff
==============================================================================
--- vmkit/branches/mcjit/lib/j3/openjdk/j3openjdk.cc (original)
+++ vmkit/branches/mcjit/lib/j3/openjdk/j3openjdk.cc Thu Jan 9 16:46:57 2014
@@ -189,6 +189,7 @@ jobject JNICALL JVM_InitProperties(JNIEn
setProp("java.boot.class.path", vm->options()->bootClasspath);
setProp("sun.boot.library.path", vm->options()->systemLibraryPath);
setProp("sun.boot.class.path", vm->options()->bootClasspath);
+ setProp("java.ext.dirs", vm->options()->extDirs);
#if 0
Modified: vmkit/branches/mcjit/lib/j3/vm/j3.cc
URL: http://llvm.org/viewvc/llvm-project/vmkit/branches/mcjit/lib/j3/vm/j3.cc?rev=198895&r1=198894&r2=198895&view=diff
==============================================================================
--- vmkit/branches/mcjit/lib/j3/vm/j3.cc (original)
+++ vmkit/branches/mcjit/lib/j3/vm/j3.cc Thu Jan 9 16:46:57 2014
@@ -157,25 +157,24 @@ void J3::run() {
if(options()->debugLifeCycle)
fprintf(stderr, " Launching the application\n");
- options()->genDebugExecute = 1;
- options()->debugExecute = 5;
+ options()->debugExecute = 0;
-#if 0
+#if 1
J3Class* loaderClass = z_class("java/lang/ClassLoader");
J3ObjectHandle* sysLoader = z_method(J3Cst::ACC_STATIC,
loaderClass,
names()->get("getSystemClassLoader"),
names()->get("()Ljava/lang/ClassLoader;"))->invokeStatic().valObject;
-#endif
+#else
J3ObjectHandle* res = z_method(J3Cst::ACC_STATIC,
z_class("sun/launcher/LauncherHelper"),
names()->get("checkAndLoadMain"),
names()->get("(ZILjava/lang/String;)Ljava/lang/Class;"))
->invokeStatic(1, 1, utfToString("HelloWorld")).valObject;
-
+
fprintf(stderr, "system class loader: sysLoader: %p - %p\n", res, res->obj());
- // public static ClassLoader getSystemClassLoader() {
+#endif
}
JNIEnv* J3::jniEnv() {
Modified: vmkit/branches/mcjit/lib/j3/vm/j3codegen-debug.cc
URL: http://llvm.org/viewvc/llvm-project/vmkit/branches/mcjit/lib/j3/vm/j3codegen-debug.cc?rev=198895&r1=198894&r2=198895&view=diff
==============================================================================
--- vmkit/branches/mcjit/lib/j3/vm/j3codegen-debug.cc (original)
+++ vmkit/branches/mcjit/lib/j3/vm/j3codegen-debug.cc Thu Jan 9 16:46:57 2014
@@ -63,11 +63,11 @@ void J3CodeGen::echoElement(uint32_t lev
if(J3Thread::get()->vm()->options()->debugExecute >= level) {
switch(type) {
case DEBUG_TYPE_INT:
- fprintf(stderr, "%lld", (uint64_t)elmt);
+ fprintf(stderr, "(long)%lld", (uint64_t)elmt);
break;
case DEBUG_TYPE_FLOAT:
- fprintf(stderr, "%lf", *((double*)&elmt));
+ fprintf(stderr, "(double)%lf", *((double*)&elmt));
break;
case DEBUG_TYPE_OBJECT:
@@ -88,7 +88,7 @@ void J3CodeGen::echoElement(uint32_t lev
char buf[J3Utf16Decoder::maxSize(content)];
J3Utf16Decoder::decode(content, buf);
J3Thread::get()->restore(prev);
- fprintf(stderr, "%s [%s]", pobj->vt()->type()->name()->cStr(), buf);
+ fprintf(stderr, "%s \"%s\"", pobj->vt()->type()->name()->cStr(), buf);
} else
fprintf(stderr, "%s@%p", pobj->vt()->type()->name()->cStr(), (void*)elmt);
} else
@@ -115,6 +115,15 @@ void J3CodeGen::genEchoElement(const cha
builder->getInt32(4),
builder->getInt32(DEBUG_TYPE_OBJECT),
builder->CreatePtrToInt(val, uintPtrTy));
+ else {
+ val = builder->CreateFPExt(val, builder->getDoubleTy());
+ llvm::Value* loc = builder->CreateAlloca(val->getType());
+ builder->CreateStore(val, loc);
+ builder->CreateCall3(funcEchoElement,
+ builder->getInt32(4),
+ builder->getInt32(DEBUG_TYPE_FLOAT),
+ builder->CreateLoad(builder->CreateBitCast(loc, uintPtrTy->getPointerTo())));
+ }
builder->CreateCall2(funcEchoDebugExecute,
builder->getInt32(4),
buildString("\n"));
Modified: vmkit/branches/mcjit/lib/j3/vm/j3codegen.cc
URL: http://llvm.org/viewvc/llvm-project/vmkit/branches/mcjit/lib/j3/vm/j3codegen.cc?rev=198895&r1=198894&r2=198895&view=diff
==============================================================================
--- vmkit/branches/mcjit/lib/j3/vm/j3codegen.cc (original)
+++ vmkit/branches/mcjit/lib/j3/vm/j3codegen.cc Thu Jan 9 16:46:57 2014
@@ -1392,7 +1392,7 @@ void J3CodeGen::translate() {
break;
case J3Cst::BC_if_icmplt: /* 0xa1 */
- val2 = stack.pop(); val1 = stack.pop(); condBr(builder->CreateICmpSLE(val1, val2));
+ val2 = stack.pop(); val1 = stack.pop(); condBr(builder->CreateICmpSLT(val1, val2));
break;
case J3Cst::BC_if_icmpge: /* 0xa2 */
Modified: vmkit/branches/mcjit/lib/j3/vm/j3options.cc
URL: http://llvm.org/viewvc/llvm-project/vmkit/branches/mcjit/lib/j3/vm/j3options.cc?rev=198895&r1=198894&r2=198895&view=diff
==============================================================================
--- vmkit/branches/mcjit/lib/j3/vm/j3options.cc (original)
+++ vmkit/branches/mcjit/lib/j3/vm/j3options.cc Thu Jan 9 16:46:57 2014
@@ -14,6 +14,7 @@ J3Options::J3Options() {
bootClasspath = J3Lib::systemClassesArchives();
systemLibraryPath = J3Lib::systemLibraryPath();
classpath = ".";
+ extDirs = J3Lib::extDirs();
debugEnterIndent = 1;
@@ -25,7 +26,7 @@ J3Options::J3Options() {
debugLinking = 0;
debugLifeCycle = 1;
- genDebugExecute = 2;//debugExecute ? 1 : 0;
+ genDebugExecute = 0;//debugExecute ? 1 : 0;
stackSize = 0x80*0x1000;
}
More information about the vmkit-commits
mailing list