* src/vm/jit/trap.cpp (trap_init): Disabled mmapping of first page by default.
[cacao.git] / src / vm / options.c
index cc94d11cd966cd7907fa403f4359e72b6296eaac..5a6f5c29f89afa645dff5dcab7b1016e15b1cebc 100644 (file)
@@ -157,6 +157,7 @@ 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;
@@ -194,9 +195,11 @@ 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,7 @@ enum {
        /* Debugging options which can be turned off. */
 
        OPT_AlwaysEmitLongBranches,
+       OPT_AlwaysMmapFirstPage,
        OPT_CompileAll,
        OPT_CompileMethod,
        OPT_CompileSignature,
@@ -259,7 +263,9 @@ enum {
        OPT_ProfileGCMemoryUsage,
        OPT_ProfileMemoryUsage,
        OPT_ProfileMemoryUsageGNUPlot,
+       OPT_RegallocSpillAll,
        OPT_TestReplacement,
+       OPT_TraceBuiltinCalls,
        OPT_TraceCompilerCalls,
        OPT_TraceExceptions,
        OPT_TraceHPI,
@@ -290,6 +296,7 @@ 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" },
@@ -327,9 +334,11 @@ option_t options_XX[] = {
        { "ProfileGCMemoryUsage",         OPT_ProfileGCMemoryUsage,         OPT_TYPE_VALUE,   "profiles GC memory usage in the given interval, <value> 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)" },
@@ -630,6 +639,10 @@ 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;
@@ -778,12 +791,20 @@ void options_xx(JavaVMInitArgs *vm_args)
                        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;
@@ -865,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;
                }
        }