X-Git-Url: http://wien.tomnetworks.com/gitweb/?a=blobdiff_plain;f=src%2Fvm%2Foptions.c;h=5a6f5c29f89afa645dff5dcab7b1016e15b1cebc;hb=673c27ae77ba384b360bf54a030066c3a7629729;hp=68def40bcc0ede872830e103c699099fc3a48f84;hpb=1e6a75a4a4b61583a8869ebe8752120764ca2aef;p=cacao.git diff --git a/src/vm/options.c b/src/vm/options.c index 68def40bc..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,19 +75,14 @@ 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; bool opt_showdisassemble = false; /* generate disassembler listing */ -bool opt_shownops = false; bool opt_showddatasegment = false; /* generate data segment listing */ bool opt_showintermediate = false; /* generate intermediate code listing */ bool checkbounds = true; /* check array bounds */ -bool opt_noieee = false; /* don't implement ieee compliant floats */ bool checksync = true; /* do synchronization */ #if defined(ENABLE_LOOP) bool opt_loops = false; /* optimize array accesses in loops */ @@ -162,6 +156,11 @@ 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; @@ -192,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 +234,11 @@ 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, @@ -285,6 +295,11 @@ 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" }, @@ -315,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)" }, @@ -617,6 +635,30 @@ void options_xx(JavaVMInitArgs *vm_args) /* Debugging options which can be turned off. */ + case OPT_AlwaysEmitLongBranches: + 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; @@ -709,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; @@ -738,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; @@ -830,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; } }