[vmkit-commits] [vmkit] r198570 - A static instance has to contain a J3Object at the beginning.

Gael Thomas gael.thomas at lip6.fr
Sun Jan 5 13:18:18 PST 2014


Author: gthomas
Date: Sun Jan  5 15:18:18 2014
New Revision: 198570

URL: http://llvm.org/viewvc/llvm-project?rev=198570&view=rev
Log:
A static instance has to contain a J3Object at the beginning.

Modified:
    vmkit/branches/mcjit/include/j3/j3options.h
    vmkit/branches/mcjit/lib/j3/openjdk/j3openjdk.cc
    vmkit/branches/mcjit/lib/j3/vm/j3.cc
    vmkit/branches/mcjit/lib/j3/vm/j3class.cc
    vmkit/branches/mcjit/lib/j3/vm/j3codegen.cc
    vmkit/branches/mcjit/lib/j3/vm/j3options.cc
    vmkit/branches/mcjit/lib/vmkit/gc.cc

Modified: vmkit/branches/mcjit/include/j3/j3options.h
URL: http://llvm.org/viewvc/llvm-project/vmkit/branches/mcjit/include/j3/j3options.h?rev=198570&r1=198569&r2=198570&view=diff
==============================================================================
--- vmkit/branches/mcjit/include/j3/j3options.h (original)
+++ vmkit/branches/mcjit/include/j3/j3options.h Sun Jan  5 15:18:18 2014
@@ -36,6 +36,7 @@ namespace j3 {
 		uint32_t       debugIniting;
 		uint32_t       debugTranslate;
 		uint32_t       debugLinking;
+		uint32_t       debugLifeCycle;
 		
 		uintptr_t      stackSize;
 

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=198570&r1=198569&r2=198570&view=diff
==============================================================================
--- vmkit/branches/mcjit/lib/j3/openjdk/j3openjdk.cc (original)
+++ vmkit/branches/mcjit/lib/j3/openjdk/j3openjdk.cc Sun Jan  5 15:18:18 2014
@@ -796,8 +796,8 @@ jobject JNICALL JVM_GetStackAccessContro
 void* JNICALL JVM_RegisterSignal(jint sig, void *handler) {
 	void* res;
 	enterJVM(); 
-	if(sig == SIGINT || sig == SIGTERM || sig == SIGHUP) {
-		J3Thread::get()->registerSignal(sig, (J3Thread::sa_action_t)handler);		
+	if(sig == SIGINT || sig == SIGTERM || sig == SIGHUP) { /* fixme: I need a full jvm to support this joke */
+		//J3Thread::get()->registerSignal(sig, (J3Thread::sa_action_t)handler);		
 		res = handler;
 	} else
 		res = (void*)-1;

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=198570&r1=198569&r2=198570&view=diff
==============================================================================
--- vmkit/branches/mcjit/lib/j3/vm/j3.cc (original)
+++ vmkit/branches/mcjit/lib/j3/vm/j3.cc Sun Jan  5 15:18:18 2014
@@ -75,7 +75,8 @@ void J3::start(int argc, char** argv) {
 
 	vmkitBootstrap(thread, options()->selfBitCodePath);	
 
-	fprintf(stderr, "  vm is bootstraped, congratulation!\n");
+	if(options()->debugLifeCycle)
+		fprintf(stderr, "  VM terminate\n");
 }
 
 void J3::run() {
@@ -144,7 +145,22 @@ void J3::run() {
 	onJavaTypes(defJavaClassPrimitive)
 #undef defJavaClassPrimitive
 
+	if(options()->debugLifeCycle)
+		fprintf(stderr, "  Bootstraping the system library\n");
+
 	J3Lib::bootstrap(this);
+
+	if(options()->debugLifeCycle)
+		fprintf(stderr, "  Creating the system class loader\n");
+
+	z_method(J3Cst::ACC_STATIC, 
+					 z_class("java/lang/ClassLoader"), 
+					 names()->get("getSystemClassLoader"),
+					 names()->get("()Ljava/lang/ClassLoader;"))
+		->invokeStatic();
+					 
+	//    public static ClassLoader getSystemClassLoader() {
+
 }
 
 JNIEnv* J3::jniEnv() {

Modified: vmkit/branches/mcjit/lib/j3/vm/j3class.cc
URL: http://llvm.org/viewvc/llvm-project/vmkit/branches/mcjit/lib/j3/vm/j3class.cc?rev=198570&r1=198569&r2=198570&view=diff
==============================================================================
--- vmkit/branches/mcjit/lib/j3/vm/j3class.cc (original)
+++ vmkit/branches/mcjit/lib/j3/vm/j3class.cc Sun Jan  5 15:18:18 2014
@@ -597,6 +597,7 @@ void J3Class::readClassBytes(J3Field* hi
 		_structSize = super()->structSize();
 	}
 
+	_staticLayout._structSize = sizeof(J3Object);
 	_structSize = ((_structSize - 1) & -sizeof(uintptr_t)) + sizeof(uintptr_t);
 
 	fillFields(pFields3, i3);

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=198570&r1=198569&r2=198570&view=diff
==============================================================================
--- vmkit/branches/mcjit/lib/j3/vm/j3codegen.cc (original)
+++ vmkit/branches/mcjit/lib/j3/vm/j3codegen.cc Sun Jan  5 15:18:18 2014
@@ -938,6 +938,15 @@ void J3CodeGen::translate() {
 		}
 
 		if(vm->options()->genDebugExecute) {
+			if(vm->options()->genDebugExecute > 1) {
+				for(uint32_t i=0; i<stack.topStack; i++)
+					builder->CreateCall4(funcEchoDebugExecute,
+															 builder->getInt32(4),
+															 buildString("           stack[%d]: %p\n"),
+															 builder->getInt32(i),
+															 stack.at(i));
+			}
+
 			char buf[256];
 			snprintf(buf, 256, "    [%4d] executing: %-20s in %s::%s", javaPC, 
 							 J3Cst::opcodeNames[bc], cl->name()->cStr(), method->name()->cStr());
@@ -1642,7 +1651,7 @@ void J3CodeGen::generateJava() {
 	for(llvm::Function::arg_iterator cur=llvmFunction->arg_begin(); cur!=llvmFunction->arg_end(); cur++) {
 		locals.setAt(flatten(cur), pos);
 
-		if(vm->options()->debugExecute)
+		if(vm->options()->genDebugExecute)
 			builder->CreateCall4(funcEchoDebugExecute,
 													 builder->getInt32(2),
 													 buildString("            arg[%d]: %p\n"),

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=198570&r1=198569&r2=198570&view=diff
==============================================================================
--- vmkit/branches/mcjit/lib/j3/vm/j3options.cc (original)
+++ vmkit/branches/mcjit/lib/j3/vm/j3options.cc Sun Jan  5 15:18:18 2014
@@ -23,8 +23,9 @@ J3Options::J3Options() {
 	debugIniting = 0;
 	debugTranslate = 0;
 	debugLinking = 0;
+	debugLifeCycle = 1;
 
-	genDebugExecute = debugExecute ? 1 : 0;
+	genDebugExecute = 0;//debugExecute ? 1 : 0;
 
 	stackSize = 0x80*0x1000;
 }

Modified: vmkit/branches/mcjit/lib/vmkit/gc.cc
URL: http://llvm.org/viewvc/llvm-project/vmkit/branches/mcjit/lib/vmkit/gc.cc?rev=198570&r1=198569&r2=198570&view=diff
==============================================================================
--- vmkit/branches/mcjit/lib/vmkit/gc.cc (original)
+++ vmkit/branches/mcjit/lib/vmkit/gc.cc Sun Jan  5 15:18:18 2014
@@ -1,5 +1,6 @@
 #include "vmkit/gc.h"
 #include <stdlib.h>
+#include <stdio.h>
 
 using namespace vmkit;
 





More information about the vmkit-commits mailing list