[vmkit-commits] [vmkit] r85003 - in /vmkit/trunk/mmtk/mmtk-j3: ActivePlan.cpp Assert.cpp Collection.cpp FinalizableProcessor.cpp Lock.cpp Memory.cpp ObjectModel.cpp ReferenceProcessor.cpp RuntimeHelpers.cpp Scanning.cpp Selected.cpp Statistics.cpp SynchronizedCounter.cpp TraceInterface.cpp VM.cpp
Nicolas Geoffray
nicolas.geoffray at lip6.fr
Sat Oct 24 05:00:00 PDT 2009
Author: geoffray
Date: Sat Oct 24 06:59:59 2009
New Revision: 85003
URL: http://llvm.org/viewvc/llvm-project?rev=85003&view=rev
Log:
Implement runtime functions for MMTk.
Added:
vmkit/trunk/mmtk/mmtk-j3/RuntimeHelpers.cpp
Modified:
vmkit/trunk/mmtk/mmtk-j3/ActivePlan.cpp
vmkit/trunk/mmtk/mmtk-j3/Assert.cpp
vmkit/trunk/mmtk/mmtk-j3/Collection.cpp
vmkit/trunk/mmtk/mmtk-j3/FinalizableProcessor.cpp
vmkit/trunk/mmtk/mmtk-j3/Lock.cpp
vmkit/trunk/mmtk/mmtk-j3/Memory.cpp
vmkit/trunk/mmtk/mmtk-j3/ObjectModel.cpp
vmkit/trunk/mmtk/mmtk-j3/ReferenceProcessor.cpp
vmkit/trunk/mmtk/mmtk-j3/Scanning.cpp
vmkit/trunk/mmtk/mmtk-j3/Selected.cpp
vmkit/trunk/mmtk/mmtk-j3/Statistics.cpp
vmkit/trunk/mmtk/mmtk-j3/SynchronizedCounter.cpp
vmkit/trunk/mmtk/mmtk-j3/TraceInterface.cpp
vmkit/trunk/mmtk/mmtk-j3/VM.cpp
Modified: vmkit/trunk/mmtk/mmtk-j3/ActivePlan.cpp
URL: http://llvm.org/viewvc/llvm-project/vmkit/trunk/mmtk/mmtk-j3/ActivePlan.cpp?rev=85003&r1=85002&r2=85003&view=diff
==============================================================================
--- vmkit/trunk/mmtk/mmtk-j3/ActivePlan.cpp (original)
+++ vmkit/trunk/mmtk/mmtk-j3/ActivePlan.cpp Sat Oct 24 06:59:59 2009
@@ -7,16 +7,32 @@
//
//===----------------------------------------------------------------------===//
+#include "JavaClass.h"
#include "JavaObject.h"
+#include "JavaThread.h"
using namespace jnjvm;
-extern "C" JavaObject* Java_org_j3_mmtk_ActivePlan_getNextMutator__ (JavaObject* A) {
- abort();
+struct ActivePlan {
+ JavaObject obj;
+ mvm::MutatorThread* next;
+};
+
+extern "C" JavaObject* Java_org_j3_mmtk_ActivePlan_getNextMutator__ (ActivePlan* A) {
+ assert(A && "No active plan");
+
+ if (A->next == 0) A->next = (mvm::MutatorThread*)JavaThread::get()->MyVM->mainThread;
+ else if (A->next->next() != JavaThread::get()->MyVM->mainThread) {
+ A->next = 0;
+ return 0;
+ }
+ else A->next = (mvm::MutatorThread*)A->next->next();
+
+ return (JavaObject*)A->next->MutatorContext;
}
-extern "C" void Java_org_j3_mmtk_ActivePlan_resetMutatorIterator__ (JavaObject* A) {
- abort();
+extern "C" void Java_org_j3_mmtk_ActivePlan_resetMutatorIterator__ (ActivePlan* A) {
+ A->next = (mvm::MutatorThread*)JavaThread::get()->MyVM->mainThread;
}
-extern "C" void Java_org_j3_mmtk_ActivePlan_collectorCount__ () { abort(); }
+extern "C" void Java_org_j3_mmtk_ActivePlan_collectorCount__ () { JavaThread::get()->printBacktrace(); abort(); }
Modified: vmkit/trunk/mmtk/mmtk-j3/Assert.cpp
URL: http://llvm.org/viewvc/llvm-project/vmkit/trunk/mmtk/mmtk-j3/Assert.cpp?rev=85003&r1=85002&r2=85003&view=diff
==============================================================================
--- vmkit/trunk/mmtk/mmtk-j3/Assert.cpp (original)
+++ vmkit/trunk/mmtk/mmtk-j3/Assert.cpp Sat Oct 24 06:59:59 2009
@@ -8,7 +8,8 @@
//===----------------------------------------------------------------------===//
#include "JavaObject.h"
+#include "JavaThread.h"
using namespace jnjvm;
-extern "C" void Java_org_j3_mmtk_Assert_dumpStack__ () { abort(); }
+extern "C" void Java_org_j3_mmtk_Assert_dumpStack__ () { JavaThread::get()->printBacktrace(); abort(); }
Modified: vmkit/trunk/mmtk/mmtk-j3/Collection.cpp
URL: http://llvm.org/viewvc/llvm-project/vmkit/trunk/mmtk/mmtk-j3/Collection.cpp?rev=85003&r1=85002&r2=85003&view=diff
==============================================================================
--- vmkit/trunk/mmtk/mmtk-j3/Collection.cpp (original)
+++ vmkit/trunk/mmtk/mmtk-j3/Collection.cpp Sat Oct 24 06:59:59 2009
@@ -8,6 +8,7 @@
//===----------------------------------------------------------------------===//
#include "JavaObject.h"
+#include "JavaThread.h"
using namespace jnjvm;
@@ -35,23 +36,23 @@
}
extern "C" int Java_org_j3_mmtk_Collection_rendezvous__I (JavaObject* C, int where) {
- abort();
+ return 1;
}
extern "C" int Java_org_j3_mmtk_Collection_maximumCollectionAttempt__ (JavaObject* C) {
- abort();
+ return 0;
}
extern "C" void Java_org_j3_mmtk_Collection_prepareCollector__Lorg_mmtk_plan_CollectorContext_2 (JavaObject* C, JavaObject* CC) {
- abort();
+ // Nothing to do.
}
-extern "C" void Java_org_j3_mmtk_Collection_joinCollection__ () { abort(); }
-extern "C" void Java_org_j3_mmtk_Collection_reportPhysicalAllocationFailed__ () { abort(); }
-extern "C" void Java_org_j3_mmtk_Collection_triggerAsyncCollection__I () { abort(); }
-extern "C" void Java_org_j3_mmtk_Collection_noThreadsInGC__ () { abort(); }
-extern "C" void Java_org_j3_mmtk_Collection_prepareMutator__Lorg_mmtk_plan_MutatorContext_2 () { abort(); }
-extern "C" void Java_org_j3_mmtk_Collection_activeGCThreads__ () { abort(); }
-extern "C" void Java_org_j3_mmtk_Collection_activeGCThreadOrdinal__ () { abort(); }
-extern "C" void Java_org_j3_mmtk_Collection_requestMutatorFlush__ () { abort(); }
+extern "C" void Java_org_j3_mmtk_Collection_joinCollection__ () { JavaThread::get()->printBacktrace(); abort(); }
+extern "C" void Java_org_j3_mmtk_Collection_reportPhysicalAllocationFailed__ () { JavaThread::get()->printBacktrace(); abort(); }
+extern "C" void Java_org_j3_mmtk_Collection_triggerAsyncCollection__I () { JavaThread::get()->printBacktrace(); abort(); }
+extern "C" void Java_org_j3_mmtk_Collection_noThreadsInGC__ () { JavaThread::get()->printBacktrace(); abort(); }
+extern "C" void Java_org_j3_mmtk_Collection_prepareMutator__Lorg_mmtk_plan_MutatorContext_2 () { JavaThread::get()->printBacktrace(); abort(); }
+extern "C" void Java_org_j3_mmtk_Collection_activeGCThreads__ () { JavaThread::get()->printBacktrace(); abort(); }
+extern "C" void Java_org_j3_mmtk_Collection_activeGCThreadOrdinal__ () { JavaThread::get()->printBacktrace(); abort(); }
+extern "C" void Java_org_j3_mmtk_Collection_requestMutatorFlush__ () { JavaThread::get()->printBacktrace(); abort(); }
Modified: vmkit/trunk/mmtk/mmtk-j3/FinalizableProcessor.cpp
URL: http://llvm.org/viewvc/llvm-project/vmkit/trunk/mmtk/mmtk-j3/FinalizableProcessor.cpp?rev=85003&r1=85002&r2=85003&view=diff
==============================================================================
--- vmkit/trunk/mmtk/mmtk-j3/FinalizableProcessor.cpp (original)
+++ vmkit/trunk/mmtk/mmtk-j3/FinalizableProcessor.cpp Sat Oct 24 06:59:59 2009
@@ -9,19 +9,20 @@
//===----------------------------------------------------------------------===//
#include "JavaObject.h"
+#include "JavaThread.h"
using namespace jnjvm;
extern "C" void Java_org_j3_mmtk_FinalizableProcessor_clear__ () {
- abort();
+ JavaThread::get()->printBacktrace(); abort();
}
extern "C" void
Java_org_j3_mmtk_FinalizableProcessor_forward__Lorg_mmtk_plan_TraceLocal_2Z () {
- abort();
+ JavaThread::get()->printBacktrace(); abort();
}
extern "C" void
Java_org_j3_mmtk_FinalizableProcessor_scan__Lorg_mmtk_plan_TraceLocal_2Z () {
- abort();
+ JavaThread::get()->printBacktrace(); abort();
}
Modified: vmkit/trunk/mmtk/mmtk-j3/Lock.cpp
URL: http://llvm.org/viewvc/llvm-project/vmkit/trunk/mmtk/mmtk-j3/Lock.cpp?rev=85003&r1=85002&r2=85003&view=diff
==============================================================================
--- vmkit/trunk/mmtk/mmtk-j3/Lock.cpp (original)
+++ vmkit/trunk/mmtk/mmtk-j3/Lock.cpp Sat Oct 24 06:59:59 2009
@@ -8,6 +8,7 @@
//===----------------------------------------------------------------------===//
#include "JavaObject.h"
+#include "JavaThread.h"
#include "mvm/Threads/Locks.h"
using namespace jnjvm;
@@ -21,7 +22,7 @@
extern "C" void Java_org_j3_mmtk_Lock_acquire__(Lock* l) {
l->spin.acquire();
}
-extern "C" void Java_org_j3_mmtk_Lock_check__I () { abort(); }
+extern "C" void Java_org_j3_mmtk_Lock_check__I () { JavaThread::get()->printBacktrace(); abort(); }
extern "C" void Java_org_j3_mmtk_Lock_release__(Lock* l) {
l->spin.release();
Modified: vmkit/trunk/mmtk/mmtk-j3/Memory.cpp
URL: http://llvm.org/viewvc/llvm-project/vmkit/trunk/mmtk/mmtk-j3/Memory.cpp?rev=85003&r1=85002&r2=85003&view=diff
==============================================================================
--- vmkit/trunk/mmtk/mmtk-j3/Memory.cpp (original)
+++ vmkit/trunk/mmtk/mmtk-j3/Memory.cpp Sat Oct 24 06:59:59 2009
@@ -11,6 +11,7 @@
#include "JavaObject.h"
+#include "JavaThread.h"
using namespace jnjvm;
extern "C" uintptr_t Java_org_j3_mmtk_Memory_getHeapStartConstant__ () {
@@ -42,7 +43,7 @@
-1, 0);
if (baseAddr == MAP_FAILED) {
perror("mmap");
- abort();
+ JavaThread::get()->printBacktrace(); abort();
}
return 0;
@@ -50,12 +51,12 @@
extern "C" void
Java_org_j3_mmtk_Memory_mprotect__Lorg_vmmagic_unboxed_Address_2I () {
- abort();
+ JavaThread::get()->printBacktrace(); abort();
}
extern "C" void
Java_org_j3_mmtk_Memory_munprotect__Lorg_vmmagic_unboxed_Address_2I () {
- abort();
+ JavaThread::get()->printBacktrace(); abort();
}
extern "C" void
@@ -67,10 +68,10 @@
extern "C" void
Java_org_j3_mmtk_Memory_zeroPages__Lorg_vmmagic_unboxed_Address_2I () {
- abort();
+ JavaThread::get()->printBacktrace(); abort();
}
extern "C" void
Java_org_j3_mmtk_Memory_dumpMemory__Lorg_vmmagic_unboxed_Address_2II () {
- abort();
+ JavaThread::get()->printBacktrace(); abort();
}
Modified: vmkit/trunk/mmtk/mmtk-j3/ObjectModel.cpp
URL: http://llvm.org/viewvc/llvm-project/vmkit/trunk/mmtk/mmtk-j3/ObjectModel.cpp?rev=85003&r1=85002&r2=85003&view=diff
==============================================================================
--- vmkit/trunk/mmtk/mmtk-j3/ObjectModel.cpp (original)
+++ vmkit/trunk/mmtk/mmtk-j3/ObjectModel.cpp Sat Oct 24 06:59:59 2009
@@ -8,6 +8,7 @@
//===----------------------------------------------------------------------===//
#include "JavaObject.h"
+#include "JavaThread.h"
using namespace jnjvm;
@@ -31,24 +32,24 @@
return obj;
}
-extern "C" void Java_org_j3_mmtk_ObjectModel_copy__Lorg_vmmagic_unboxed_ObjectReference_2I () { abort(); }
-extern "C" void Java_org_j3_mmtk_ObjectModel_copyTo__Lorg_vmmagic_unboxed_ObjectReference_2Lorg_vmmagic_unboxed_ObjectReference_2Lorg_vmmagic_unboxed_Address_2 () { abort(); }
-extern "C" void Java_org_j3_mmtk_ObjectModel_getReferenceWhenCopiedTo__Lorg_vmmagic_unboxed_ObjectReference_2Lorg_vmmagic_unboxed_Address_2 () { abort(); }
-extern "C" void Java_org_j3_mmtk_ObjectModel_getObjectEndAddress__Lorg_vmmagic_unboxed_ObjectReference_2 () { abort(); }
-extern "C" void Java_org_j3_mmtk_ObjectModel_getSizeWhenCopied__Lorg_vmmagic_unboxed_ObjectReference_2 () { abort(); }
-extern "C" void Java_org_j3_mmtk_ObjectModel_getAlignWhenCopied__Lorg_vmmagic_unboxed_ObjectReference_2 () { abort(); }
-extern "C" void Java_org_j3_mmtk_ObjectModel_getAlignOffsetWhenCopied__Lorg_vmmagic_unboxed_ObjectReference_2 () { abort(); }
-extern "C" void Java_org_j3_mmtk_ObjectModel_getCurrentSize__Lorg_vmmagic_unboxed_ObjectReference_2 () { abort(); }
-extern "C" void Java_org_j3_mmtk_ObjectModel_getNextObject__Lorg_vmmagic_unboxed_ObjectReference_2 () { abort(); }
-extern "C" void Java_org_j3_mmtk_ObjectModel_getObjectFromStartAddress__Lorg_vmmagic_unboxed_Address_2 () { abort(); }
-extern "C" void Java_org_j3_mmtk_ObjectModel_getTypeDescriptor__Lorg_vmmagic_unboxed_ObjectReference_2 () { abort(); }
-extern "C" void Java_org_j3_mmtk_ObjectModel_getArrayLength__Lorg_vmmagic_unboxed_ObjectReference_2 () { abort(); }
-extern "C" void Java_org_j3_mmtk_ObjectModel_isArray__Lorg_vmmagic_unboxed_ObjectReference_2 () { abort(); }
-extern "C" void Java_org_j3_mmtk_ObjectModel_isPrimitiveArray__Lorg_vmmagic_unboxed_ObjectReference_2 () { abort(); }
-extern "C" void Java_org_j3_mmtk_ObjectModel_attemptAvailableBits__Lorg_vmmagic_unboxed_ObjectReference_2Lorg_vmmagic_unboxed_Word_2Lorg_vmmagic_unboxed_Word_2 () { abort(); }
-extern "C" void Java_org_j3_mmtk_ObjectModel_prepareAvailableBits__Lorg_vmmagic_unboxed_ObjectReference_2 () { abort(); }
-extern "C" void Java_org_j3_mmtk_ObjectModel_writeAvailableByte__Lorg_vmmagic_unboxed_ObjectReference_2B () { abort(); }
-extern "C" void Java_org_j3_mmtk_ObjectModel_readAvailableByte__Lorg_vmmagic_unboxed_ObjectReference_2 () { abort(); }
-extern "C" void Java_org_j3_mmtk_ObjectModel_refToAddress__Lorg_vmmagic_unboxed_ObjectReference_2 () { abort(); }
-extern "C" void Java_org_j3_mmtk_ObjectModel_isAcyclic__Lorg_vmmagic_unboxed_ObjectReference_2 () { abort(); }
-extern "C" void Java_org_j3_mmtk_ObjectModel_dumpObject__Lorg_vmmagic_unboxed_ObjectReference_2 () { abort(); }
+extern "C" void Java_org_j3_mmtk_ObjectModel_copy__Lorg_vmmagic_unboxed_ObjectReference_2I () { JavaThread::get()->printBacktrace(); abort(); }
+extern "C" void Java_org_j3_mmtk_ObjectModel_copyTo__Lorg_vmmagic_unboxed_ObjectReference_2Lorg_vmmagic_unboxed_ObjectReference_2Lorg_vmmagic_unboxed_Address_2 () { JavaThread::get()->printBacktrace(); abort(); }
+extern "C" void Java_org_j3_mmtk_ObjectModel_getReferenceWhenCopiedTo__Lorg_vmmagic_unboxed_ObjectReference_2Lorg_vmmagic_unboxed_Address_2 () { JavaThread::get()->printBacktrace(); abort(); }
+extern "C" void Java_org_j3_mmtk_ObjectModel_getObjectEndAddress__Lorg_vmmagic_unboxed_ObjectReference_2 () { JavaThread::get()->printBacktrace(); abort(); }
+extern "C" void Java_org_j3_mmtk_ObjectModel_getSizeWhenCopied__Lorg_vmmagic_unboxed_ObjectReference_2 () { JavaThread::get()->printBacktrace(); abort(); }
+extern "C" void Java_org_j3_mmtk_ObjectModel_getAlignWhenCopied__Lorg_vmmagic_unboxed_ObjectReference_2 () { JavaThread::get()->printBacktrace(); abort(); }
+extern "C" void Java_org_j3_mmtk_ObjectModel_getAlignOffsetWhenCopied__Lorg_vmmagic_unboxed_ObjectReference_2 () { JavaThread::get()->printBacktrace(); abort(); }
+extern "C" void Java_org_j3_mmtk_ObjectModel_getCurrentSize__Lorg_vmmagic_unboxed_ObjectReference_2 () { JavaThread::get()->printBacktrace(); abort(); }
+extern "C" void Java_org_j3_mmtk_ObjectModel_getNextObject__Lorg_vmmagic_unboxed_ObjectReference_2 () { JavaThread::get()->printBacktrace(); abort(); }
+extern "C" void Java_org_j3_mmtk_ObjectModel_getObjectFromStartAddress__Lorg_vmmagic_unboxed_Address_2 () { JavaThread::get()->printBacktrace(); abort(); }
+extern "C" void Java_org_j3_mmtk_ObjectModel_getTypeDescriptor__Lorg_vmmagic_unboxed_ObjectReference_2 () { JavaThread::get()->printBacktrace(); abort(); }
+extern "C" void Java_org_j3_mmtk_ObjectModel_getArrayLength__Lorg_vmmagic_unboxed_ObjectReference_2 () { JavaThread::get()->printBacktrace(); abort(); }
+extern "C" void Java_org_j3_mmtk_ObjectModel_isArray__Lorg_vmmagic_unboxed_ObjectReference_2 () { JavaThread::get()->printBacktrace(); abort(); }
+extern "C" void Java_org_j3_mmtk_ObjectModel_isPrimitiveArray__Lorg_vmmagic_unboxed_ObjectReference_2 () { JavaThread::get()->printBacktrace(); abort(); }
+extern "C" void Java_org_j3_mmtk_ObjectModel_attemptAvailableBits__Lorg_vmmagic_unboxed_ObjectReference_2Lorg_vmmagic_unboxed_Word_2Lorg_vmmagic_unboxed_Word_2 () { JavaThread::get()->printBacktrace(); abort(); }
+extern "C" void Java_org_j3_mmtk_ObjectModel_prepareAvailableBits__Lorg_vmmagic_unboxed_ObjectReference_2 () { JavaThread::get()->printBacktrace(); abort(); }
+extern "C" void Java_org_j3_mmtk_ObjectModel_writeAvailableByte__Lorg_vmmagic_unboxed_ObjectReference_2B () { JavaThread::get()->printBacktrace(); abort(); }
+extern "C" void Java_org_j3_mmtk_ObjectModel_readAvailableByte__Lorg_vmmagic_unboxed_ObjectReference_2 () { JavaThread::get()->printBacktrace(); abort(); }
+extern "C" void Java_org_j3_mmtk_ObjectModel_refToAddress__Lorg_vmmagic_unboxed_ObjectReference_2 () { JavaThread::get()->printBacktrace(); abort(); }
+extern "C" void Java_org_j3_mmtk_ObjectModel_isAcyclic__Lorg_vmmagic_unboxed_ObjectReference_2 () { JavaThread::get()->printBacktrace(); abort(); }
+extern "C" void Java_org_j3_mmtk_ObjectModel_dumpObject__Lorg_vmmagic_unboxed_ObjectReference_2 () { JavaThread::get()->printBacktrace(); abort(); }
Modified: vmkit/trunk/mmtk/mmtk-j3/ReferenceProcessor.cpp
URL: http://llvm.org/viewvc/llvm-project/vmkit/trunk/mmtk/mmtk-j3/ReferenceProcessor.cpp?rev=85003&r1=85002&r2=85003&view=diff
==============================================================================
--- vmkit/trunk/mmtk/mmtk-j3/ReferenceProcessor.cpp (original)
+++ vmkit/trunk/mmtk/mmtk-j3/ReferenceProcessor.cpp Sat Oct 24 06:59:59 2009
@@ -9,13 +9,14 @@
//===----------------------------------------------------------------------===//
#include "JavaObject.h"
+#include "JavaThread.h"
using namespace jnjvm;
extern "C" void Java_org_j3_mmtk_ReferenceProcessor_scan__Lorg_mmtk_plan_TraceLocal_2Z () {
- abort();
+ JavaThread::get()->printBacktrace(); abort();
}
-extern "C" void Java_org_j3_mmtk_ReferenceProcessor_forward__Lorg_mmtk_plan_TraceLocal_2Z () { abort(); }
-extern "C" void Java_org_j3_mmtk_ReferenceProcessor_clear__ () { abort(); }
-extern "C" void Java_org_j3_mmtk_ReferenceProcessor_countWaitingReferences__ () { abort(); }
+extern "C" void Java_org_j3_mmtk_ReferenceProcessor_forward__Lorg_mmtk_plan_TraceLocal_2Z () { JavaThread::get()->printBacktrace(); abort(); }
+extern "C" void Java_org_j3_mmtk_ReferenceProcessor_clear__ () { JavaThread::get()->printBacktrace(); abort(); }
+extern "C" void Java_org_j3_mmtk_ReferenceProcessor_countWaitingReferences__ () { JavaThread::get()->printBacktrace(); abort(); }
Added: vmkit/trunk/mmtk/mmtk-j3/RuntimeHelpers.cpp
URL: http://llvm.org/viewvc/llvm-project/vmkit/trunk/mmtk/mmtk-j3/RuntimeHelpers.cpp?rev=85003&view=auto
==============================================================================
--- vmkit/trunk/mmtk/mmtk-j3/RuntimeHelpers.cpp (added)
+++ vmkit/trunk/mmtk/mmtk-j3/RuntimeHelpers.cpp Sat Oct 24 06:59:59 2009
@@ -0,0 +1,22 @@
+//===-- RuntimeHelpers.cpp - Implement rt.jar functions needed by MMTk --===//
+//
+// The VMKit project
+//
+// This file is distributed under the University of Illinois Open Source
+// License. See LICENSE.TXT for details.
+//
+//===----------------------------------------------------------------------===//
+
+#include "JavaArray.h"
+#include "JavaClass.h"
+#include "JavaString.h"
+
+using namespace jnjvm;
+
+extern "C" uint16_t MMTkCharAt(JavaString* str, uint32_t index) {
+ return str->value->elements[index];
+}
+
+extern "C" JavaObject* MMTkGetClass(JavaObject* obj) {
+ return obj->getClass()->delegatee[0];
+}
Modified: vmkit/trunk/mmtk/mmtk-j3/Scanning.cpp
URL: http://llvm.org/viewvc/llvm-project/vmkit/trunk/mmtk/mmtk-j3/Scanning.cpp?rev=85003&r1=85002&r2=85003&view=diff
==============================================================================
--- vmkit/trunk/mmtk/mmtk-j3/Scanning.cpp (original)
+++ vmkit/trunk/mmtk/mmtk-j3/Scanning.cpp Sat Oct 24 06:59:59 2009
@@ -8,26 +8,27 @@
//===----------------------------------------------------------------------===//
#include "JavaObject.h"
+#include "JavaThread.h"
using namespace jnjvm;
extern "C" void Java_org_j3_mmtk_Scanning_computeThreadRoots__Lorg_mmtk_plan_TraceLocal_2 () {
- abort();
+ JavaThread::get()->printBacktrace(); abort();
}
extern "C" void Java_org_j3_mmtk_Scanning_computeGlobalRoots__Lorg_mmtk_plan_TraceLocal_2 () {
- abort();
+ JavaThread::get()->printBacktrace(); abort();
}
extern "C" void Java_org_j3_mmtk_Scanning_computeStaticRoots__Lorg_mmtk_plan_TraceLocal_2 () {
- abort();
+ JavaThread::get()->printBacktrace(); abort();
}
extern "C" void Java_org_j3_mmtk_Scanning_resetThreadCounter__ () {
- abort();
+ JavaThread::get()->printBacktrace(); abort();
}
-extern "C" void Java_org_j3_mmtk_Scanning_scanObject__Lorg_mmtk_plan_TransitiveClosure_2Lorg_vmmagic_unboxed_ObjectReference_2 () { abort(); }
-extern "C" void Java_org_j3_mmtk_Scanning_specializedScanObject__ILorg_mmtk_plan_TransitiveClosure_2Lorg_vmmagic_unboxed_ObjectReference_2 () { abort(); }
-extern "C" void Java_org_j3_mmtk_Scanning_precopyChildren__Lorg_mmtk_plan_TraceLocal_2Lorg_vmmagic_unboxed_ObjectReference_2 () { abort(); }
-extern "C" void Java_org_j3_mmtk_Scanning_preCopyGCInstances__Lorg_mmtk_plan_TraceLocal_2 () { abort(); }
+extern "C" void Java_org_j3_mmtk_Scanning_scanObject__Lorg_mmtk_plan_TransitiveClosure_2Lorg_vmmagic_unboxed_ObjectReference_2 () { JavaThread::get()->printBacktrace(); abort(); }
+extern "C" void Java_org_j3_mmtk_Scanning_specializedScanObject__ILorg_mmtk_plan_TransitiveClosure_2Lorg_vmmagic_unboxed_ObjectReference_2 () { JavaThread::get()->printBacktrace(); abort(); }
+extern "C" void Java_org_j3_mmtk_Scanning_precopyChildren__Lorg_mmtk_plan_TraceLocal_2Lorg_vmmagic_unboxed_ObjectReference_2 () { JavaThread::get()->printBacktrace(); abort(); }
+extern "C" void Java_org_j3_mmtk_Scanning_preCopyGCInstances__Lorg_mmtk_plan_TraceLocal_2 () { JavaThread::get()->printBacktrace(); abort(); }
Modified: vmkit/trunk/mmtk/mmtk-j3/Selected.cpp
URL: http://llvm.org/viewvc/llvm-project/vmkit/trunk/mmtk/mmtk-j3/Selected.cpp?rev=85003&r1=85002&r2=85003&view=diff
==============================================================================
--- vmkit/trunk/mmtk/mmtk-j3/Selected.cpp (original)
+++ vmkit/trunk/mmtk/mmtk-j3/Selected.cpp Sat Oct 24 06:59:59 2009
@@ -11,15 +11,14 @@
#include "JavaClass.h"
#include "JavaObject.h"
#include "JavaThread.h"
+#include "MutatorThread.h"
using namespace jnjvm;
extern "C" JavaObject* Java_org_j3_config_Selected_00024Collector_get__() {
- abort();
- return 0;
+ return (JavaObject*)mvm::MutatorThread::get()->CollectorContext;
}
extern "C" JavaObject* Java_org_j3_config_Selected_00024Mutator_get__() {
- abort();
- return 0;
+ return (JavaObject*)mvm::MutatorThread::get()->MutatorContext;
}
Modified: vmkit/trunk/mmtk/mmtk-j3/Statistics.cpp
URL: http://llvm.org/viewvc/llvm-project/vmkit/trunk/mmtk/mmtk-j3/Statistics.cpp?rev=85003&r1=85002&r2=85003&view=diff
==============================================================================
--- vmkit/trunk/mmtk/mmtk-j3/Statistics.cpp (original)
+++ vmkit/trunk/mmtk/mmtk-j3/Statistics.cpp Sat Oct 24 06:59:59 2009
@@ -8,6 +8,7 @@
//===----------------------------------------------------------------------===//
#include "JavaObject.h"
+#include "JavaThread.h"
using namespace jnjvm;
@@ -19,7 +20,7 @@
return 0;
}
-extern "C" void Java_org_j3_mmtk_Statistics_getCollectionCount__ () { abort(); }
-extern "C" void Java_org_j3_mmtk_Statistics_nanoTime__ () { abort(); }
-extern "C" void Java_org_j3_mmtk_Statistics_perfCtrReadCycles__ () { abort(); }
-extern "C" void Java_org_j3_mmtk_Statistics_perfCtrReadMetric__ () { abort(); }
+extern "C" void Java_org_j3_mmtk_Statistics_getCollectionCount__ () { JavaThread::get()->printBacktrace(); abort(); }
+extern "C" void Java_org_j3_mmtk_Statistics_nanoTime__ () { JavaThread::get()->printBacktrace(); abort(); }
+extern "C" void Java_org_j3_mmtk_Statistics_perfCtrReadCycles__ () { JavaThread::get()->printBacktrace(); abort(); }
+extern "C" void Java_org_j3_mmtk_Statistics_perfCtrReadMetric__ () { JavaThread::get()->printBacktrace(); abort(); }
Modified: vmkit/trunk/mmtk/mmtk-j3/SynchronizedCounter.cpp
URL: http://llvm.org/viewvc/llvm-project/vmkit/trunk/mmtk/mmtk-j3/SynchronizedCounter.cpp?rev=85003&r1=85002&r2=85003&view=diff
==============================================================================
--- vmkit/trunk/mmtk/mmtk-j3/SynchronizedCounter.cpp (original)
+++ vmkit/trunk/mmtk/mmtk-j3/SynchronizedCounter.cpp Sat Oct 24 06:59:59 2009
@@ -9,9 +9,10 @@
//===----------------------------------------------------------------------===//
#include "JavaObject.h"
+#include "JavaThread.h"
using namespace jnjvm;
-extern "C" void Java_org_j3_mmtk_SynchronizedCounter_reset__ () { abort(); }
-extern "C" void Java_org_j3_mmtk_SynchronizedCounter_increment__ () { abort(); }
+extern "C" void Java_org_j3_mmtk_SynchronizedCounter_reset__ () { JavaThread::get()->printBacktrace(); abort(); }
+extern "C" void Java_org_j3_mmtk_SynchronizedCounter_increment__ () { JavaThread::get()->printBacktrace(); abort(); }
Modified: vmkit/trunk/mmtk/mmtk-j3/TraceInterface.cpp
URL: http://llvm.org/viewvc/llvm-project/vmkit/trunk/mmtk/mmtk-j3/TraceInterface.cpp?rev=85003&r1=85002&r2=85003&view=diff
==============================================================================
--- vmkit/trunk/mmtk/mmtk-j3/TraceInterface.cpp (original)
+++ vmkit/trunk/mmtk/mmtk-j3/TraceInterface.cpp Sat Oct 24 06:59:59 2009
@@ -8,22 +8,23 @@
//===----------------------------------------------------------------------===//
#include "JavaObject.h"
+#include "JavaThread.h"
using namespace jnjvm;
-extern "C" void Java_org_j3_mmtk_TraceInterface_gcEnabled__ () { abort(); }
-extern "C" void Java_org_j3_mmtk_TraceInterface_adjustSlotOffset__ZLorg_vmmagic_unboxed_ObjectReference_2Lorg_vmmagic_unboxed_Address_2 () { abort(); }
-extern "C" void Java_org_j3_mmtk_TraceInterface_skipOwnFramesAndDump__Lorg_vmmagic_unboxed_ObjectReference_2 () { abort(); }
-extern "C" void Java_org_j3_mmtk_TraceInterface_updateDeathTime__Lorg_vmmagic_unboxed_ObjectReference_2 () { abort(); }
-extern "C" void Java_org_j3_mmtk_TraceInterface_setDeathTime__Lorg_vmmagic_unboxed_ObjectReference_2Lorg_vmmagic_unboxed_Word_2 () { abort(); }
-extern "C" void Java_org_j3_mmtk_TraceInterface_setLink__Lorg_vmmagic_unboxed_ObjectReference_2Lorg_vmmagic_unboxed_ObjectReference_2 () { abort(); }
-extern "C" void Java_org_j3_mmtk_TraceInterface_updateTime__Lorg_vmmagic_unboxed_Word_2 () { abort(); }
-extern "C" void Java_org_j3_mmtk_TraceInterface_getOID__Lorg_vmmagic_unboxed_ObjectReference_2 () { abort(); }
-extern "C" void Java_org_j3_mmtk_TraceInterface_getDeathTime__Lorg_vmmagic_unboxed_ObjectReference_2 () { abort(); }
-extern "C" void Java_org_j3_mmtk_TraceInterface_getLink__Lorg_vmmagic_unboxed_ObjectReference_2 () { abort(); }
-extern "C" void Java_org_j3_mmtk_TraceInterface_getBootImageLink__ () { abort(); }
-extern "C" void Java_org_j3_mmtk_TraceInterface_getOID__ () { abort(); }
-extern "C" void Java_org_j3_mmtk_TraceInterface_setOID__Lorg_vmmagic_unboxed_Word_2 () { abort(); }
-extern "C" void Java_org_j3_mmtk_TraceInterface_getHeaderSize__ () { abort(); }
-extern "C" void Java_org_j3_mmtk_TraceInterface_getHeaderEndOffset__ () { abort(); }
+extern "C" void Java_org_j3_mmtk_TraceInterface_gcEnabled__ () { JavaThread::get()->printBacktrace(); abort(); }
+extern "C" void Java_org_j3_mmtk_TraceInterface_adjustSlotOffset__ZLorg_vmmagic_unboxed_ObjectReference_2Lorg_vmmagic_unboxed_Address_2 () { JavaThread::get()->printBacktrace(); abort(); }
+extern "C" void Java_org_j3_mmtk_TraceInterface_skipOwnFramesAndDump__Lorg_vmmagic_unboxed_ObjectReference_2 () { JavaThread::get()->printBacktrace(); abort(); }
+extern "C" void Java_org_j3_mmtk_TraceInterface_updateDeathTime__Lorg_vmmagic_unboxed_ObjectReference_2 () { JavaThread::get()->printBacktrace(); abort(); }
+extern "C" void Java_org_j3_mmtk_TraceInterface_setDeathTime__Lorg_vmmagic_unboxed_ObjectReference_2Lorg_vmmagic_unboxed_Word_2 () { JavaThread::get()->printBacktrace(); abort(); }
+extern "C" void Java_org_j3_mmtk_TraceInterface_setLink__Lorg_vmmagic_unboxed_ObjectReference_2Lorg_vmmagic_unboxed_ObjectReference_2 () { JavaThread::get()->printBacktrace(); abort(); }
+extern "C" void Java_org_j3_mmtk_TraceInterface_updateTime__Lorg_vmmagic_unboxed_Word_2 () { JavaThread::get()->printBacktrace(); abort(); }
+extern "C" void Java_org_j3_mmtk_TraceInterface_getOID__Lorg_vmmagic_unboxed_ObjectReference_2 () { JavaThread::get()->printBacktrace(); abort(); }
+extern "C" void Java_org_j3_mmtk_TraceInterface_getDeathTime__Lorg_vmmagic_unboxed_ObjectReference_2 () { JavaThread::get()->printBacktrace(); abort(); }
+extern "C" void Java_org_j3_mmtk_TraceInterface_getLink__Lorg_vmmagic_unboxed_ObjectReference_2 () { JavaThread::get()->printBacktrace(); abort(); }
+extern "C" void Java_org_j3_mmtk_TraceInterface_getBootImageLink__ () { JavaThread::get()->printBacktrace(); abort(); }
+extern "C" void Java_org_j3_mmtk_TraceInterface_getOID__ () { JavaThread::get()->printBacktrace(); abort(); }
+extern "C" void Java_org_j3_mmtk_TraceInterface_setOID__Lorg_vmmagic_unboxed_Word_2 () { JavaThread::get()->printBacktrace(); abort(); }
+extern "C" void Java_org_j3_mmtk_TraceInterface_getHeaderSize__ () { JavaThread::get()->printBacktrace(); abort(); }
+extern "C" void Java_org_j3_mmtk_TraceInterface_getHeaderEndOffset__ () { JavaThread::get()->printBacktrace(); abort(); }
Modified: vmkit/trunk/mmtk/mmtk-j3/VM.cpp
URL: http://llvm.org/viewvc/llvm-project/vmkit/trunk/mmtk/mmtk-j3/VM.cpp?rev=85003&r1=85002&r2=85003&view=diff
==============================================================================
--- vmkit/trunk/mmtk/mmtk-j3/VM.cpp (original)
+++ vmkit/trunk/mmtk/mmtk-j3/VM.cpp Sat Oct 24 06:59:59 2009
@@ -12,16 +12,16 @@
using namespace jnjvm;
-extern "C" void Java_org_j3_runtime_VM_sysWrite__Lorg_vmmagic_unboxed_Extent_2 () { abort(); }
-extern "C" void Java_org_j3_runtime_VM_sysWrite__Lorg_vmmagic_unboxed_Address_2 () { abort(); }
-extern "C" void Java_org_j3_runtime_VM_sysWrite__F () { abort(); }
-extern "C" void Java_org_j3_runtime_VM_sysWrite__I () { abort(); }
-extern "C" void Java_org_j3_runtime_VM_sysWrite__Ljava_lang_String_2 () { abort(); }
-extern "C" void Java_org_j3_runtime_VM_sysWriteln__ () { abort(); }
-extern "C" void Java_org_j3_runtime_VM_sysWriteln__Ljava_lang_String_2 () { abort(); }
-extern "C" void Java_org_j3_runtime_VM__1assert__ZLjava_lang_String_2 () { abort(); }
-extern "C" void Java_org_j3_runtime_VM_sysExit__I () { abort(); }
-extern "C" void Java_org_j3_runtime_VM_sysFail__Ljava_lang_String_2 () { abort(); }
+extern "C" void Java_org_j3_runtime_VM_sysWrite__Lorg_vmmagic_unboxed_Extent_2 () { JavaThread::get()->printBacktrace(); abort(); }
+extern "C" void Java_org_j3_runtime_VM_sysWrite__Lorg_vmmagic_unboxed_Address_2 () { JavaThread::get()->printBacktrace(); abort(); }
+extern "C" void Java_org_j3_runtime_VM_sysWrite__F () { JavaThread::get()->printBacktrace(); abort(); }
+extern "C" void Java_org_j3_runtime_VM_sysWrite__I () { JavaThread::get()->printBacktrace(); abort(); }
+extern "C" void Java_org_j3_runtime_VM_sysWrite__Ljava_lang_String_2 () { JavaThread::get()->printBacktrace(); abort(); }
+extern "C" void Java_org_j3_runtime_VM_sysWriteln__ () { JavaThread::get()->printBacktrace(); abort(); }
+extern "C" void Java_org_j3_runtime_VM_sysWriteln__Ljava_lang_String_2 () { JavaThread::get()->printBacktrace(); abort(); }
+extern "C" void Java_org_j3_runtime_VM__1assert__ZLjava_lang_String_2 () { JavaThread::get()->printBacktrace(); abort(); }
+extern "C" void Java_org_j3_runtime_VM_sysExit__I () { JavaThread::get()->printBacktrace(); abort(); }
+extern "C" void Java_org_j3_runtime_VM_sysFail__Ljava_lang_String_2 () { JavaThread::get()->printBacktrace(); abort(); }
extern "C" void Java_org_j3_runtime_VM__1assert__Z (bool cond) {
More information about the vmkit-commits
mailing list