blob: bf8dfe72ab03920e1edf93060ef5cf465bb4b890 [file] [log] [blame]
//===-------------- VM.cpp - Implementation of the VM class --------------===//
//
// The VMKit project
//
// This file is distributed under the University of Illinois Open Source
// License. See LICENSE.TXT for details.
//
//===----------------------------------------------------------------------===//
#include "debug.h"
#include "MMTkObject.h"
namespace mmtk {
extern "C" void Java_org_j3_runtime_VM_sysWrite__Lorg_vmmagic_unboxed_Extent_2 (void* e) {
fprintf(stderr, "%p", e);
}
extern "C" void Java_org_j3_runtime_VM_sysWrite__Lorg_vmmagic_unboxed_Address_2 (void* a) {
fprintf(stderr, "%p", a);
}
extern "C" void Java_org_j3_runtime_VM_sysWrite__F (float f) {
fprintf(stderr, "%f", f);
}
extern "C" void Java_org_j3_runtime_VM_sysWrite__I (int i) {
fprintf(stderr, "%d", i);
}
extern "C" void Java_org_j3_runtime_VM_sysWrite__Ljava_lang_String_2 (MMTkString* msg) {
for (int i = 0; i < msg->count; i++) {
fprintf(stderr, "%c", msg->value->elements[i + msg->offset]);
}
}
extern "C" void Java_org_j3_runtime_VM_sysWriteln__Ljava_lang_String_2 (MMTkString* msg) {
for (int i = 0; i < msg->count; i++) {
fprintf(stderr, "%c", msg->value->elements[i + msg->offset]);
}
fprintf(stderr, "\n");
}
extern "C" void Java_org_j3_runtime_VM_sysWriteln__ () {
fprintf(stderr, "\n");
}
extern "C" void Java_org_j3_runtime_VM__1assert__ZLjava_lang_String_2 (bool cond, MMTkString* msg) {
ABORT();
}
extern "C" void Java_org_j3_runtime_VM_sysExit__I (int i) {
ABORT();
}
extern "C" void Java_org_j3_runtime_VM_sysFail__Ljava_lang_String_2 (MMTkString* msg) {
// Just call abort because gcmalloc calls this function. If it were to
// call printf, MMTkInline.inc could not be JIT-compiled.
abort();
}
extern "C" void Java_org_j3_runtime_VM__1assert__Z (uint8_t cond) {
ASSERT(cond);
}
extern "C" bool Java_org_j3_runtime_VM_buildFor64Addr__ () {
return vmkit::kWordSize == 8;
}
extern "C" bool Java_org_j3_runtime_VM_buildForIA32__ () {
#if ARCH_X86
return true;
#else
return false;
#endif
}
extern "C" bool Java_org_j3_runtime_VM_verifyAssertions__ () {
// TODO: MUST UPDATE THIS COMMENT AND TRY TO UNDERSTAND HOW IT WORKS
// Note that DEBUG is defined in make ENABLE_OPTIMIZED=1.
// You must provide DISABLE_ASSERTIONS=1 to not have DEBUG defined.
// To generate MMTkInline.inc, this function returns false.
#if 0
return true;
#else
return false;
#endif
}
} // namespace mmtk