[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