[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