X-Git-Url: http://wien.tomnetworks.com/gitweb/?a=blobdiff_plain;f=src%2Fvm%2Foptions.c;h=5a6f5c29f89afa645dff5dcab7b1016e15b1cebc;hb=673c27ae77ba384b360bf54a030066c3a7629729;hp=3c3bace7016621d07fa95fe0ddd201a9e4549b13;hpb=05539973ddfb7c014c3e076e961b0b4adf5117be;p=cacao.git diff --git a/src/vm/options.c b/src/vm/options.c index 3c3bace70..5a6f5c29f 100644 --- a/src/vm/options.c +++ b/src/vm/options.c @@ -30,7 +30,7 @@ #include #include -#include "mm/memory.h" +#include "mm/memory.hpp" #include "vm/options.h" #include "vm/os.hpp" @@ -62,7 +62,6 @@ s4 opt_stacksize = 0; /* thread stack size */ bool opt_verbose = false; bool opt_debugcolor = false; /* use ANSI terminal sequences */ -bool compileall = false; bool loadverbose = false; bool initverbose = false; @@ -76,9 +75,6 @@ bool showmethods = false; bool showconstantpool = false; bool showutf = false; -char *opt_method = NULL; -char *opt_signature = NULL; - bool compileverbose = false; /* trace compiler actions */ bool showstack = false; @@ -161,6 +157,10 @@ int opt_ThreadStackSize = 0; /* Debugging options which can be turned off. */ bool opt_AlwaysEmitLongBranches = false; +bool opt_AlwaysMmapFirstPage = false; +int opt_CompileAll = 0; +char* opt_CompileMethod = NULL; +char* opt_CompileSignature = NULL; int opt_DebugExceptions = 0; int opt_DebugFinalizer = 0; int opt_DebugLocalReferences = 0; @@ -191,12 +191,15 @@ int opt_InlineMinSize = 0; #endif #endif int opt_PrintConfig = 0; +int opt_PrintWarnings = 0; int opt_ProfileGCMemoryUsage = 0; int opt_ProfileMemoryUsage = 0; FILE *opt_ProfileMemoryUsageGNUPlot = NULL; +int opt_RegallocSpillAll = 0; #if defined(ENABLE_REPLACEMENT) int opt_TestReplacement = 0; #endif +int opt_TraceBuiltinCalls = 0; int opt_TraceCompilerCalls = 0; int opt_TraceExceptions = 0; int opt_TraceHPI = 0; @@ -232,6 +235,10 @@ enum { /* Debugging options which can be turned off. */ OPT_AlwaysEmitLongBranches, + OPT_AlwaysMmapFirstPage, + OPT_CompileAll, + OPT_CompileMethod, + OPT_CompileSignature, OPT_DebugExceptions, OPT_DebugFinalizer, OPT_DebugLocalReferences, @@ -252,10 +259,13 @@ enum { OPT_InlineMaxSize, OPT_InlineMinSize, OPT_PrintConfig, + OPT_PrintWarnings, OPT_ProfileGCMemoryUsage, OPT_ProfileMemoryUsage, OPT_ProfileMemoryUsageGNUPlot, + OPT_RegallocSpillAll, OPT_TestReplacement, + OPT_TraceBuiltinCalls, OPT_TraceCompilerCalls, OPT_TraceExceptions, OPT_TraceHPI, @@ -286,6 +296,10 @@ option_t options_XX[] = { /* Debugging options which can be turned off. */ { "AlwaysEmitLongBranches", OPT_AlwaysEmitLongBranches, OPT_TYPE_BOOLEAN, "Always emit long-branches." }, + { "AlwaysMmapFirstPage", OPT_AlwaysMmapFirstPage, OPT_TYPE_BOOLEAN, "Always mmap memory page at address 0x0." }, + { "CompileAll", OPT_CompileAll, OPT_TYPE_BOOLEAN, "compile all methods, no execution" }, + { "CompileMethod", OPT_CompileMethod, OPT_TYPE_VALUE, "compile only a specific method" }, + { "CompileSignature", OPT_CompileSignature, OPT_TYPE_VALUE, "specify signature for a specific method" }, { "DebugExceptions", OPT_DebugExceptions, OPT_TYPE_BOOLEAN, "debug exceptions" }, { "DebugFinalizer", OPT_DebugFinalizer, OPT_TYPE_BOOLEAN, "debug finalizer thread" }, { "DebugLocalReferences", OPT_DebugLocalReferences, OPT_TYPE_BOOLEAN, "print debug information for local reference tables" }, @@ -316,12 +330,15 @@ option_t options_XX[] = { #endif #endif { "PrintConfig", OPT_PrintConfig, OPT_TYPE_BOOLEAN, "print VM configuration" }, + { "PrintWarnings", OPT_PrintWarnings, OPT_TYPE_BOOLEAN, "print warnings about suspicious behavior"}, { "ProfileGCMemoryUsage", OPT_ProfileGCMemoryUsage, OPT_TYPE_VALUE, "profiles GC memory usage in the given interval, is in seconds (default: 5)" }, { "ProfileMemoryUsage", OPT_ProfileMemoryUsage, OPT_TYPE_VALUE, "TODO" }, { "ProfileMemoryUsageGNUPlot", OPT_ProfileMemoryUsageGNUPlot, OPT_TYPE_VALUE, "TODO" }, + { "RegallocSpillAll", OPT_RegallocSpillAll, OPT_TYPE_BOOLEAN, "spill all variables to the stack" }, #if defined(ENABLE_REPLACEMENT) { "TestReplacement", OPT_TestReplacement, OPT_TYPE_BOOLEAN, "activate all replacement points during code generation" }, #endif + { "TraceBuiltinCalls", OPT_TraceBuiltinCalls, OPT_TYPE_BOOLEAN, "trace calls to VM builtin functions" }, { "TraceCompilerCalls", OPT_TraceCompilerCalls, OPT_TYPE_BOOLEAN, "trace JIT compiler calls" }, { "TraceExceptions", OPT_TraceExceptions, OPT_TYPE_BOOLEAN, "trace Exception throwing" }, { "TraceHPI", OPT_TraceHPI, OPT_TYPE_BOOLEAN, "Trace Host Porting Interface (HPI)" }, @@ -622,6 +639,26 @@ void options_xx(JavaVMInitArgs *vm_args) opt_AlwaysEmitLongBranches = enable; break; + case OPT_AlwaysMmapFirstPage: + opt_AlwaysMmapFirstPage = enable; + break; + + case OPT_CompileAll: + opt_CompileAll = enable; + opt_run = false; + makeinitializations = false; + break; + + case OPT_CompileMethod: + opt_CompileMethod = value; + opt_run = false; + makeinitializations = false; + break; + + case OPT_CompileSignature: + opt_CompileSignature = value; + break; + case OPT_DebugExceptions: opt_DebugExceptions = enable; break; @@ -714,6 +751,10 @@ void options_xx(JavaVMInitArgs *vm_args) opt_PrintConfig = enable; break; + case OPT_PrintWarnings: + opt_PrintWarnings = enable; + break; + case OPT_ProfileGCMemoryUsage: if (value == NULL) opt_ProfileGCMemoryUsage = 5; @@ -743,17 +784,27 @@ void options_xx(JavaVMInitArgs *vm_args) file = fopen(filename, "w"); if (file == NULL) - vm_abort_errno("options_xx: fopen failed"); +#warning Use below method instead! + //os::abort_errno("options_xx: fopen failed"); + vm_abort("options_xx: fopen failed"); opt_ProfileMemoryUsageGNUPlot = file; break; + case OPT_RegallocSpillAll: + opt_RegallocSpillAll = enable; + break; + #if defined(ENABLE_REPLACEMENT) case OPT_TestReplacement: opt_TestReplacement = enable; break; #endif + case OPT_TraceBuiltinCalls: + opt_TraceBuiltinCalls = enable; + break; + case OPT_TraceCompilerCalls: opt_TraceCompilerCalls = enable; break; @@ -835,7 +886,7 @@ void options_xx(JavaVMInitArgs *vm_args) #endif default: - printf("Unknown -XX option: %s\n", name); + fprintf(stderr, "Unknown -XX option: %s\n", name); break; } }