You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@harmony.apache.org by va...@apache.org on 2006/11/30 13:55:01 UTC

svn commit: r480913 [2/3] - in /harmony/enhanced/drlvm/trunk: build/custom/msvc_2003/vmcore/ vm/em/src/ vm/gc_cc/src/ vm/gc_gen/src/common/ vm/include/open/ vm/interpreter/ vm/interpreter/src/ vm/jitrino/config/em64t/ vm/jitrino/config/ia32/ vm/jitrino...

Modified: harmony/enhanced/drlvm/trunk/vm/gc_gen/src/common/gc_for_vm.cpp
URL: http://svn.apache.org/viewvc/harmony/enhanced/drlvm/trunk/vm/gc_gen/src/common/gc_for_vm.cpp?view=diff&rev=480913&r1=480912&r2=480913
==============================================================================
--- harmony/enhanced/drlvm/trunk/vm/gc_gen/src/common/gc_for_vm.cpp (original)
+++ harmony/enhanced/drlvm/trunk/vm/gc_gen/src/common/gc_for_vm.cpp Thu Nov 30 04:54:59 2006
@@ -35,18 +35,20 @@
 unsigned int min_heap_size_bytes = 32 * MB;
 unsigned int max_heap_size_bytes = 256 * MB;
 
-static size_t parse_size_string(const char* size_string) 
+static size_t get_size_property(const char* name) 
 {
-  size_t len = strlen(size_string);
+  char* size_string = get_property(name, VM_PROPERTIES);
+  size_t size = atol(size_string);
+  int sizeModifier = tolower(size_string[strlen(size_string) - 1]);
+  destroy_property_value(size_string);
+
   size_t unit = 1;
-  if (tolower(size_string[len - 1]) == 'k') {
-    unit = 1024;
-  } else if (tolower(size_string[len - 1]) == 'm') {
-    unit = 1024 * 1024;
-  } else if (tolower(size_string[len - 1]) == 'g') {
-    unit = 1024 * 1024 * 1024;
+  switch (sizeModifier) {
+  case 'k': unit = 1024; break;
+  case 'm': unit = 1024 * 1024; break;
+  case 'g': unit = 1024 * 1024 * 1024;break;
   }
-  size_t size = atol(size_string);
+
   size_t res = size * unit;
   if (res / unit != size) {
     /* overflow happened */
@@ -55,34 +57,13 @@
   return res;
 }
 
-static bool get_property_value_boolean(char* name) 
-{
-  const char* value = vm_get_property_value(name);
-  
-  return (strcmp("0", value) != 0
-    && strcmp("off", value) != 0 
-    && strcmp("false", value) != 0);
-}
-
-static int get_property_value_int(char* name) 
-{
-  const char* value = vm_get_property_value(name);
-  return (NULL == value) ? 0 : atoi(value);
-}
-
-static bool is_property_set(char* name) 
-{
-  const char* value = vm_get_property_value(name);
-  return (NULL != value && 0 != value[0]);
-}
-
 static void parse_configuration_properties() 
 {
   unsigned int max_heap_size = HEAP_SIZE_DEFAULT;
   unsigned int min_heap_size = min_heap_size_bytes;
   
-  if (is_property_set("gc.mx")) {
-    max_heap_size = parse_size_string(vm_get_property_value("gc.mx"));
+  if (is_property_set("gc.mx", VM_PROPERTIES) == 1) {
+    max_heap_size = get_size_property("gc.mx");
 
     if (max_heap_size < min_heap_size)
       max_heap_size = min_heap_size;
@@ -93,8 +74,8 @@
     if (min_heap_size < min_heap_size_bytes) min_heap_size = min_heap_size_bytes;
   }
 
-  if (is_property_set("gc.ms")) {
-    min_heap_size = parse_size_string(vm_get_property_value("gc.ms"));
+  if (is_property_set("gc.ms", VM_PROPERTIES) == 1) {
+    min_heap_size = get_size_property("gc.ms");
     if (min_heap_size < min_heap_size_bytes) 
       min_heap_size = min_heap_size_bytes;
   }
@@ -105,22 +86,13 @@
   min_heap_size_bytes = min_heap_size;
   max_heap_size_bytes = max_heap_size;
 
-  if (is_property_set("gc.nos_size")) {
-    NOS_SIZE = parse_size_string(vm_get_property_value("gc.nos_size"));
+  if (is_property_set("gc.nos_size", VM_PROPERTIES) == 1) {
+    NOS_SIZE = get_size_property("gc.nos_size");
   }
 
-  if (is_property_set("gc.num_collectors")) {
-    unsigned int num = get_property_value_int("gc.num_collectors");
-    NUM_COLLECTORS = (num==0)? NUM_COLLECTORS:num;
-  }
-
-  if (is_property_set("gc.gen_mode")) {
-    NEED_BARRIER = get_property_value_boolean("gc.gen_mode");
-  }
-
-  if (is_property_set("gc.verify")) {
-    GC_VERIFY = get_property_value_boolean("gc.verify");
-  }
+  NUM_COLLECTORS = get_int_property("gc.num_collectors", NUM_COLLECTORS, VM_PROPERTIES);
+  NEED_BARRIER = get_boolean_property("gc.gen_mode", TRUE, VM_PROPERTIES);
+  GC_VERIFY = get_boolean_property("gc.verify", FALSE, VM_PROPERTIES);
   
   return;  
 }

Modified: harmony/enhanced/drlvm/trunk/vm/include/open/vm.h
URL: http://svn.apache.org/viewvc/harmony/enhanced/drlvm/trunk/vm/include/open/vm.h?view=diff&rev=480913&r1=480912&r2=480913
==============================================================================
--- harmony/enhanced/drlvm/trunk/vm/include/open/vm.h (original)
+++ harmony/enhanced/drlvm/trunk/vm/include/open/vm.h Thu Nov 30 04:54:59 2006
@@ -686,37 +686,47 @@
 // Free a string buffer returned by method_sig_get_string.
 VMEXPORT void free_string_buffer(char *buffer);
 
-// Return the value of a global property, e.g. one set by the "-Dproperty=value"
-// command line argument.
-VMEXPORT const char *vm_get_property_value(const char *property_name);
 
-VMEXPORT void vm_properties_set_value(const char* name, const char* value);
 
-typedef void *PropertiesIteratorHandle;
+typedef enum {
+    VM_PROPERTIES  = 0,
+    JAVA_PROPERTIES = 1
+} PropertyTable;
 
-// Create iterator for system properties.
-// All iterators created with this method call 
-// must be destroyed with vm_properties_iterator_destroy 
-VMEXPORT PropertiesIteratorHandle vm_properties_iterator_create();
+//Sets the property for table_number property table. NULL value is supported.
+VMEXPORT void set_property(const char* key, const char* value, PropertyTable table_number);
 
-// Destroy iterator created by vm_properties_iterator_create
-VMEXPORT void vm_properties_iterator_destroy(PropertiesIteratorHandle props_iter);
+//Returns the value of the property from table_number property table if it
+//has been set by set_property function. Otherwise returns NULL.
+VMEXPORT char* get_property(const char* key, PropertyTable table_number);
 
-// Advance iterator to a next property.
-// Return false if no more properties left to iterate
-VMEXPORT Boolean vm_properties_iterator_advance(PropertiesIteratorHandle props_iter);
+//Safety frees memory of value returned by get_property function.
+VMEXPORT void destroy_property_value(char* value);
 
-// Return a name of the current property
-VMEXPORT const char* vm_properties_get_name(PropertiesIteratorHandle props_iter);
+//Checks if the property is set. Return:
+//   -1 if table_number is incorrect.
+//    1 if property is set in table_number property table.
+//    0 otherwise.
+VMEXPORT int is_property_set(const char* key, PropertyTable table_number);
 
-// Return a value of the current property
-VMEXPORT const char* vm_properties_get_string_value(PropertiesIteratorHandle props_iter);
+//Unsets the property in table_number property table.
+VMEXPORT void unset_property(const char* key, PropertyTable table_number);
 
-// Return the boolean value of the property
-VMEXPORT Boolean vm_get_property_value_boolean(const char* property, Boolean default_value);
+//Returns an array of keys from table_number properties table.
+VMEXPORT char** get_properties_keys(PropertyTable table_number);
 
-VMEXPORT Boolean vm_get_boolean_property_value_with_default(const char *property_name);
+//Returns an array of keys which start with specified prefix from table_number properties table.
+VMEXPORT char** get_properties_keys_staring_with(const char* prefix, PropertyTable table_number);
 
+//Safety frees array of keys memory which returned by get_properties_keys
+//or get_properties_keys_staring_with functions.
+VMEXPORT void destroy_properties_keys(char** keys);
+
+//Tries to interpret property value as Boolean and returns it. In case of failure returns default_value.
+VMEXPORT Boolean get_boolean_property(const char* property, Boolean default_value, PropertyTable table_number);
+
+//Tries to interpret property value as int and returns it. In case of failure returns default_value.
+VMEXPORT int get_int_property(const char *property_name, int default_value, PropertyTable table_number);
 // end miscellaneous functions.
 /////////////////////////////////////////////////////////////////
 

Modified: harmony/enhanced/drlvm/trunk/vm/include/open/vm_util.h
URL: http://svn.apache.org/viewvc/harmony/enhanced/drlvm/trunk/vm/include/open/vm_util.h?view=diff&rev=480913&r1=480912&r2=480913
==============================================================================
--- harmony/enhanced/drlvm/trunk/vm/include/open/vm_util.h (original)
+++ harmony/enhanced/drlvm/trunk/vm/include/open/vm_util.h Thu Nov 30 04:54:59 2006
@@ -76,13 +76,6 @@
 void __stdcall vm_dump_object_and_return_ip(void *obj, void *eip);
 #endif
 
-// Allows setting a boolean property on the command line.
-// Currently uses on/true/1 for true, and off/false/0 for false.
-VMEXPORT Boolean vm_get_boolean_property_value_with_default(const char *property_name);
-void check_vm_standard_property(const char *propertyName, const char *propertyValue);
-void print_vm_standard_properties();
-
-
 class ExpandableMemBlock
 {
 public:

Modified: harmony/enhanced/drlvm/trunk/vm/interpreter/interpreter.emconf
URL: http://svn.apache.org/viewvc/harmony/enhanced/drlvm/trunk/vm/interpreter/interpreter.emconf?view=diff&rev=480913&r1=480912&r2=480913
==============================================================================
--- harmony/enhanced/drlvm/trunk/vm/interpreter/interpreter.emconf (original)
+++ harmony/enhanced/drlvm/trunk/vm/interpreter/interpreter.emconf Thu Nov 30 04:54:59 2006
@@ -23,4 +23,4 @@
 
 #system properties
 -Djava.compiler=interpreter
--Dvm.use_interpreter=true
\ No newline at end of file
+-XDvm.use_interpreter=true

Modified: harmony/enhanced/drlvm/trunk/vm/interpreter/src/interp_exports.cpp
URL: http://svn.apache.org/viewvc/harmony/enhanced/drlvm/trunk/vm/interpreter/src/interp_exports.cpp?view=diff&rev=480913&r1=480912&r2=480913
==============================================================================
--- harmony/enhanced/drlvm/trunk/vm/interpreter/src/interp_exports.cpp (original)
+++ harmony/enhanced/drlvm/trunk/vm/interpreter/src/interp_exports.cpp Thu Nov 30 04:54:59 2006
@@ -128,8 +128,8 @@
     interpreter->interpreter_ti_pop_frame = &interpreter_ti_pop_frame;
     interpreter->stack_dump = &stack_dump;
 
-#ifdef _WIN32
-    if (!vm_get_boolean_property_value_with_default("vm.assert_dialog"))
+#if defined (PLATFORM_NT) && defined (_DEBUG)
+    if (!get_boolean_property("vm.assert_dialog", false, VM_PROPERTIES))
     {
         disable_assert_dialogs();
     }

Modified: harmony/enhanced/drlvm/trunk/vm/jitrino/config/em64t/client.emconf
URL: http://svn.apache.org/viewvc/harmony/enhanced/drlvm/trunk/vm/jitrino/config/em64t/client.emconf?view=diff&rev=480913&r1=480912&r2=480913
==============================================================================
--- harmony/enhanced/drlvm/trunk/vm/jitrino/config/em64t/client.emconf (original)
+++ harmony/enhanced/drlvm/trunk/vm/jitrino/config/em64t/client.emconf Thu Nov 30 04:54:59 2006
@@ -48,27 +48,27 @@
 
 # Options to be passed to JIT
 
--Djit.JET_CLINIT.path=
--Djit.JET_DPGO.path=
+-XDjit.JET_CLINIT.path=
+-XDjit.JET_DPGO.path=
 
--Djit.CD_OPT.path=opt_init,translator,optimizer,hir2lir,codegen
+-XDjit.CD_OPT.path=opt_init,translator,optimizer,hir2lir,codegen
 
--Djit.CD_OPT.path.optimizer=ssa,devirt,inline,uce,purge,simplify,dce,uce,memopt,simplify,dce,uce,lower,dessa,statprof,markglobals
--Djit.CD_OPT.path.codegen=lock_method,bbp,gcpoints,cafl,dce1,i8l-,early_prop-,itrace-,native,constraints,dce2,regalloc,spillgen,layout,copy,rce-,stack,break-,iprof-,emitter!,si_insts,gcmap,info,unlock_method
--Djit.CD_OPT.path.dce1=cg_dce
--Djit.CD_OPT.path.dce2=cg_dce
--Djit.CD_OPT.path.regalloc=bp_regalloc1,bp_regalloc2
--Djit.CD_OPT.path.bp_regalloc1=bp_regalloc
--Djit.CD_OPT.path.bp_regalloc2=bp_regalloc
+-XDjit.CD_OPT.path.optimizer=ssa,devirt,inline,uce,purge,simplify,dce,uce,memopt,simplify,dce,uce,lower,dessa,statprof,markglobals
+-XDjit.CD_OPT.path.codegen=lock_method,bbp,gcpoints,cafl,dce1,i8l-,early_prop-,itrace-,native,constraints,dce2,regalloc,spillgen,layout,copy,rce-,stack,break-,iprof-,emitter!,si_insts,gcmap,info,unlock_method
+-XDjit.CD_OPT.path.dce1=cg_dce
+-XDjit.CD_OPT.path.dce2=cg_dce
+-XDjit.CD_OPT.path.regalloc=bp_regalloc1,bp_regalloc2
+-XDjit.CD_OPT.path.bp_regalloc1=bp_regalloc
+-XDjit.CD_OPT.path.bp_regalloc2=bp_regalloc
 
 #inliner configuration
--Djit.CD_OPT.CD_OPT_inliner_pipeline.filter=-
--Djit.CD_OPT.CD_OPT_inliner_pipeline.path=ssa,devirt
--Djit.CD_OPT.arg.optimizer.inline.pipeline=CD_OPT_inliner_pipeline
+-XDjit.CD_OPT.CD_OPT_inliner_pipeline.filter=-
+-XDjit.CD_OPT.CD_OPT_inliner_pipeline.path=ssa,devirt
+-XDjit.CD_OPT.arg.optimizer.inline.pipeline=CD_OPT_inliner_pipeline
 
--Djit.CD_OPT.arg.codegen.dce1.early=yes
--Djit.CD_OPT.arg.codegen.regalloc.bp_regalloc1.regs=ALL_GP
--Djit.CD_OPT.arg.codegen.regalloc.bp_regalloc2.regs=ALL_XMM
+-XDjit.CD_OPT.arg.codegen.dce1.early=yes
+-XDjit.CD_OPT.arg.codegen.regalloc.bp_regalloc1.regs=ALL_GP
+-XDjit.CD_OPT.arg.codegen.regalloc.bp_regalloc2.regs=ALL_XMM
 
 
 #system properties

Modified: harmony/enhanced/drlvm/trunk/vm/jitrino/config/em64t/jet.emconf
URL: http://svn.apache.org/viewvc/harmony/enhanced/drlvm/trunk/vm/jitrino/config/em64t/jet.emconf?view=diff&rev=480913&r1=480912&r2=480913
==============================================================================
--- harmony/enhanced/drlvm/trunk/vm/jitrino/config/em64t/jet.emconf (original)
+++ harmony/enhanced/drlvm/trunk/vm/jitrino/config/em64t/jet.emconf Thu Nov 30 04:54:59 2006
@@ -20,7 +20,7 @@
 JET.file=jitrino
 
 #JIT options
--Djit.JET.path=
+-XDjit.JET.path=
 
 
 #system properties

Modified: harmony/enhanced/drlvm/trunk/vm/jitrino/config/em64t/opt.emconf
URL: http://svn.apache.org/viewvc/harmony/enhanced/drlvm/trunk/vm/jitrino/config/em64t/opt.emconf?view=diff&rev=480913&r1=480912&r2=480913
==============================================================================
--- harmony/enhanced/drlvm/trunk/vm/jitrino/config/em64t/opt.emconf (original)
+++ harmony/enhanced/drlvm/trunk/vm/jitrino/config/em64t/opt.emconf Thu Nov 30 04:54:59 2006
@@ -22,25 +22,25 @@
 
 # Options to be passed to JIT
 
--Djit.CS_OPT.path=opt_init,translator,optimizer,hir2lir,codegen
+-XDjit.CS_OPT.path=opt_init,translator,optimizer,hir2lir,codegen
 
--Djit.CS_OPT.path.optimizer=ssa,devirt,inline,uce,purge,simplify,dce,uce,memopt,simplify,dce,uce,lower,dessa,statprof,markglobals
--Djit.CS_OPT.path.codegen=lock_method,bbp,gcpoints,cafl,dce1,i8l-,early_prop-,itrace-,native,constraints,dce2,regalloc,spillgen,layout,copy,rce-,stack,break-,iprof-,emitter!,si_insts,gcmap,info,unlock_method
--Djit.CS_OPT.path.dce1=cg_dce
--Djit.CS_OPT.path.dce2=cg_dce
--Djit.CS_OPT.path.regalloc=bp_regalloc1,bp_regalloc2
--Djit.CS_OPT.path.bp_regalloc1=bp_regalloc
--Djit.CS_OPT.path.bp_regalloc2=bp_regalloc
+-XDjit.CS_OPT.path.optimizer=ssa,devirt,inline,uce,purge,simplify,dce,uce,memopt,simplify,dce,uce,lower,dessa,statprof,markglobals
+-XDjit.CS_OPT.path.codegen=lock_method,bbp,gcpoints,cafl,dce1,i8l-,early_prop-,itrace-,native,constraints,dce2,regalloc,spillgen,layout,copy,rce-,stack,break-,iprof-,emitter!,si_insts,gcmap,info,unlock_method
+-XDjit.CS_OPT.path.dce1=cg_dce
+-XDjit.CS_OPT.path.dce2=cg_dce
+-XDjit.CS_OPT.path.regalloc=bp_regalloc1,bp_regalloc2
+-XDjit.CS_OPT.path.bp_regalloc1=bp_regalloc
+-XDjit.CS_OPT.path.bp_regalloc2=bp_regalloc
 
 #inliner configuration
--Djit.CS_OPT.CS_OPT_inliner_pipeline.filter=-
--Djit.CS_OPT.CS_OPT_inliner_pipeline.path=ssa,devirt
--Djit.CS_OPT.arg.optimizer.inline.pipeline=CS_OPT_inliner_pipeline
+-XDjit.CS_OPT.CS_OPT_inliner_pipeline.filter=-
+-XDjit.CS_OPT.CS_OPT_inliner_pipeline.path=ssa,devirt
+-XDjit.CS_OPT.arg.optimizer.inline.pipeline=CS_OPT_inliner_pipeline
 
 
--Djit.CS_OPT.arg.codegen.dce1.early=yes
--Djit.CS_OPT.arg.codegen.regalloc.bp_regalloc1.regs=ALL_GP
--Djit.CS_OPT.arg.codegen.regalloc.bp_regalloc2.regs=ALL_XMM
+-XDjit.CS_OPT.arg.codegen.dce1.early=yes
+-XDjit.CS_OPT.arg.codegen.regalloc.bp_regalloc1.regs=ALL_GP
+-XDjit.CS_OPT.arg.codegen.regalloc.bp_regalloc2.regs=ALL_XMM
 
 
 #system properties

Modified: harmony/enhanced/drlvm/trunk/vm/jitrino/config/em64t/server.emconf
URL: http://svn.apache.org/viewvc/harmony/enhanced/drlvm/trunk/vm/jitrino/config/em64t/server.emconf?view=diff&rev=480913&r1=480912&r2=480913
==============================================================================
--- harmony/enhanced/drlvm/trunk/vm/jitrino/config/em64t/server.emconf (original)
+++ harmony/enhanced/drlvm/trunk/vm/jitrino/config/em64t/server.emconf Thu Nov 30 04:54:59 2006
@@ -37,45 +37,45 @@
 
 #options for JIT
 
--Djit.JET_CLINIT.path=
+-XDjit.JET_CLINIT.path=
 
 
--Djit.SD1_OPT.path=opt_init,translator,optimizer,hir2lir,codegen
+-XDjit.SD1_OPT.path=opt_init,translator,optimizer,hir2lir,codegen
 
--Djit.SD1_OPT.path.optimizer=ssa,simplify,dce,uce,edge_instrument,dessa,statprof,markglobals
--Djit.SD1_OPT.path.codegen=lock_method,bbp,gcpoints,cafl,dce1,i8l-,early_prop-,itrace-,native,constraints,dce2,regalloc,spillgen,layout,copy,rce-,stack,break-,iprof-,emitter!,si_insts,gcmap,info,unlock_method
--Djit.SD1_OPT.path.dce1=cg_dce
--Djit.SD1_OPT.path.dce2=cg_dce
--Djit.SD1_OPT.path.regalloc=bp_regalloc1,bp_regalloc2
--Djit.SD1_OPT.path.bp_regalloc1=bp_regalloc
--Djit.SD1_OPT.path.bp_regalloc2=bp_regalloc
+-XDjit.SD1_OPT.path.optimizer=ssa,simplify,dce,uce,edge_instrument,dessa,statprof,markglobals
+-XDjit.SD1_OPT.path.codegen=lock_method,bbp,gcpoints,cafl,dce1,i8l-,early_prop-,itrace-,native,constraints,dce2,regalloc,spillgen,layout,copy,rce-,stack,break-,iprof-,emitter!,si_insts,gcmap,info,unlock_method
+-XDjit.SD1_OPT.path.dce1=cg_dce
+-XDjit.SD1_OPT.path.dce2=cg_dce
+-XDjit.SD1_OPT.path.regalloc=bp_regalloc1,bp_regalloc2
+-XDjit.SD1_OPT.path.bp_regalloc1=bp_regalloc
+-XDjit.SD1_OPT.path.bp_regalloc2=bp_regalloc
 
--Djit.SD1_OPT.arg.codegen.dce1.early=yes
--Djit.SD1_OPT.arg.codegen.regalloc.bp_regalloc1.regs=ALL_GP
--Djit.SD1_OPT.arg.codegen.regalloc.bp_regalloc2.regs=ALL_XMM
+-XDjit.SD1_OPT.arg.codegen.dce1.early=yes
+-XDjit.SD1_OPT.arg.codegen.regalloc.bp_regalloc1.regs=ALL_GP
+-XDjit.SD1_OPT.arg.codegen.regalloc.bp_regalloc2.regs=ALL_XMM
 
 
 
--Djit.SD2_OPT.path=opt_init,translator,optimizer,hir2lir,codegen
+-XDjit.SD2_OPT.path=opt_init,translator,optimizer,hir2lir,codegen
 
--Djit.SD2_OPT.path.optimizer=ssa,simplify,dce,uce,edge_annotate,devirt,inline,uce,purge,simplify,dce,uce,hvn,dce,uce,dessa,statprof,peel,ssa,hvn,simplify,dce,uce,lower,dce,uce,memopt,reassoc,dce,uce,hvn,dce,uce,abcd,dce,uce,gcm,dessa,statprof,markglobals
--Djit.SD2_OPT.path.codegen=lock_method,bbp,gcpoints,cafl,dce1,i8l-,early_prop-,itrace-,native,constraints,dce2,regalloc,spillgen,layout,copy,rce-,stack,break-,iprof-,emitter!,si_insts,gcmap,info,unlock_method
--Djit.SD2_OPT.path.dce1=dce
--Djit.SD2_OPT.path.dce2=dce
--Djit.SD2_OPT.path.regalloc=bp_regalloc1,bp_regalloc2
--Djit.SD2_OPT.path.bp_regalloc1=bp_regalloc
--Djit.SD2_OPT.path.bp_regalloc2=bp_regalloc
+-XDjit.SD2_OPT.path.optimizer=ssa,simplify,dce,uce,edge_annotate,devirt,inline,uce,purge,simplify,dce,uce,hvn,dce,uce,dessa,statprof,peel,ssa,hvn,simplify,dce,uce,lower,dce,uce,memopt,reassoc,dce,uce,hvn,dce,uce,abcd,dce,uce,gcm,dessa,statprof,markglobals
+-XDjit.SD2_OPT.path.codegen=lock_method,bbp,gcpoints,cafl,dce1,i8l-,early_prop-,itrace-,native,constraints,dce2,regalloc,spillgen,layout,copy,rce-,stack,break-,iprof-,emitter!,si_insts,gcmap,info,unlock_method
+-XDjit.SD2_OPT.path.dce1=dce
+-XDjit.SD2_OPT.path.dce2=dce
+-XDjit.SD2_OPT.path.regalloc=bp_regalloc1,bp_regalloc2
+-XDjit.SD2_OPT.path.bp_regalloc1=bp_regalloc
+-XDjit.SD2_OPT.path.bp_regalloc2=bp_regalloc
 
 #inliner configuration
--Djit.SD2_OPT.SD2_OPT_inliner_pipeline.filter=-
--Djit.SD2_OPT.SD2_OPT_inliner_pipeline.path=ssa,simplify,dce,uce,edge_annotate,devirt
--Djit.SD2_OPT.arg.optimizer.inline.pipeline=SD2_OPT_inliner_pipeline
--Djit.SD2_OPT.arg.optimizer.inline.connect_early=false
+-XDjit.SD2_OPT.SD2_OPT_inliner_pipeline.filter=-
+-XDjit.SD2_OPT.SD2_OPT_inliner_pipeline.path=ssa,simplify,dce,uce,edge_annotate,devirt
+-XDjit.SD2_OPT.arg.optimizer.inline.pipeline=SD2_OPT_inliner_pipeline
+-XDjit.SD2_OPT.arg.optimizer.inline.connect_early=false
 
 
--Djit.SD2_OPT.arg.codegen.dce1.early=yes
--Djit.SD2_OPT.arg.codegen.regalloc.bp_regalloc1.regs=ALL_GP
--Djit.SD2_OPT.arg.codegen.regalloc.bp_regalloc2.regs=ALL_XMM
+-XDjit.SD2_OPT.arg.codegen.dce1.early=yes
+-XDjit.SD2_OPT.arg.codegen.regalloc.bp_regalloc1.regs=ALL_GP
+-XDjit.SD2_OPT.arg.codegen.regalloc.bp_regalloc2.regs=ALL_XMM
 
 
 #system properties

Modified: harmony/enhanced/drlvm/trunk/vm/jitrino/config/em64t/server_static.emconf
URL: http://svn.apache.org/viewvc/harmony/enhanced/drlvm/trunk/vm/jitrino/config/em64t/server_static.emconf?view=diff&rev=480913&r1=480912&r2=480913
==============================================================================
--- harmony/enhanced/drlvm/trunk/vm/jitrino/config/em64t/server_static.emconf (original)
+++ harmony/enhanced/drlvm/trunk/vm/jitrino/config/em64t/server_static.emconf Thu Nov 30 04:54:59 2006
@@ -22,24 +22,24 @@
 
 # Options to be passed to JIT
 
--Djit.SS_OPT.path=opt_init,translator,optimizer,hir2lir,codegen
+-XDjit.SS_OPT.path=opt_init,translator,optimizer,hir2lir,codegen
 
--Djit.SS_OPT.path.optimizer=ssa,simplify,dce,uce,statprof,devirt,inline,uce,purge,simplify,dce,uce,hvn,dce,uce,dessa,statprof,peel,ssa,hvn,simplify,dce,uce,lower,dce,uce,memopt,reassoc,dce,uce,hvn,dce,uce,abcd,dce,uce,gcm,dessa,statprof,markglobals
--Djit.SS_OPT.path.codegen=lock_method,bbp,gcpoints,cafl,dce1,i8l-,early_prop-,itrace-,native,constraints,dce2,regalloc,spillgen,layout,copy,rce-,stack,break-,iprof-,emitter!,si_insts,gcmap,info,unlock_method
--Djit.SS_OPT.path.dce1=cg_dce
--Djit.SS_OPT.path.dce2=cg_dce
--Djit.SS_OPT.path.regalloc=bp_regalloc1,bp_regalloc2
--Djit.SS_OPT.path.bp_regalloc1=bp_regalloc
--Djit.SS_OPT.path.bp_regalloc2=bp_regalloc
+-XDjit.SS_OPT.path.optimizer=ssa,simplify,dce,uce,statprof,devirt,inline,uce,purge,simplify,dce,uce,hvn,dce,uce,dessa,statprof,peel,ssa,hvn,simplify,dce,uce,lower,dce,uce,memopt,reassoc,dce,uce,hvn,dce,uce,abcd,dce,uce,gcm,dessa,statprof,markglobals
+-XDjit.SS_OPT.path.codegen=lock_method,bbp,gcpoints,cafl,dce1,i8l-,early_prop-,itrace-,native,constraints,dce2,regalloc,spillgen,layout,copy,rce-,stack,break-,iprof-,emitter!,si_insts,gcmap,info,unlock_method
+-XDjit.SS_OPT.path.dce1=cg_dce
+-XDjit.SS_OPT.path.dce2=cg_dce
+-XDjit.SS_OPT.path.regalloc=bp_regalloc1,bp_regalloc2
+-XDjit.SS_OPT.path.bp_regalloc1=bp_regalloc
+-XDjit.SS_OPT.path.bp_regalloc2=bp_regalloc
 
 #inliner configuration
--Djit.SS_OPT.SS_OPT_inliner_pipeline.filter=-
--Djit.SS_OPT.SS_OPT_inliner_pipeline.path=ssa,simplify,dce,uce,statprof,devirt
--Djit.SS_OPT.arg.optimizer.inline.pipeline=SS_OPT_inliner_pipeline
+-XDjit.SS_OPT.SS_OPT_inliner_pipeline.filter=-
+-XDjit.SS_OPT.SS_OPT_inliner_pipeline.path=ssa,simplify,dce,uce,statprof,devirt
+-XDjit.SS_OPT.arg.optimizer.inline.pipeline=SS_OPT_inliner_pipeline
 
--Djit.SS_OPT.arg.codegen.dce1.early=yes
--Djit.SS_OPT.arg.codegen.regalloc.bp_regalloc1.regs=ALL_GP
--Djit.SS_OPT.arg.codegen.regalloc.bp_regalloc2.regs=ALL_XMM
+-XDjit.SS_OPT.arg.codegen.dce1.early=yes
+-XDjit.SS_OPT.arg.codegen.regalloc.bp_regalloc1.regs=ALL_GP
+-XDjit.SS_OPT.arg.codegen.regalloc.bp_regalloc2.regs=ALL_XMM
 
 
 #system properties

Modified: harmony/enhanced/drlvm/trunk/vm/jitrino/config/em64t/ti.emconf
URL: http://svn.apache.org/viewvc/harmony/enhanced/drlvm/trunk/vm/jitrino/config/em64t/ti.emconf?view=diff&rev=480913&r1=480912&r2=480913
==============================================================================
--- harmony/enhanced/drlvm/trunk/vm/jitrino/config/em64t/ti.emconf (original)
+++ harmony/enhanced/drlvm/trunk/vm/jitrino/config/em64t/ti.emconf Thu Nov 30 04:54:59 2006
@@ -20,7 +20,7 @@
 JET_TI.file=jitrino
 
 #JIT options
--Djit.JET_TI.path=
+-XDjit.JET_TI.path=
 
 #system properties
 -Djava.compiler=jet ti

Modified: harmony/enhanced/drlvm/trunk/vm/jitrino/config/ia32/client.emconf
URL: http://svn.apache.org/viewvc/harmony/enhanced/drlvm/trunk/vm/jitrino/config/ia32/client.emconf?view=diff&rev=480913&r1=480912&r2=480913
==============================================================================
--- harmony/enhanced/drlvm/trunk/vm/jitrino/config/ia32/client.emconf (original)
+++ harmony/enhanced/drlvm/trunk/vm/jitrino/config/ia32/client.emconf Thu Nov 30 04:54:59 2006
@@ -48,27 +48,27 @@
 
 # Options to be passed to JIT
 
--Djit.JET_CLINIT.path=
--Djit.JET_DPGO.path=
+-XDjit.JET_CLINIT.path=
+-XDjit.JET_DPGO.path=
 
--Djit.CD_OPT.path=opt_init,translator,optimizer,hir2lir,codegen
+-XDjit.CD_OPT.path=opt_init,translator,optimizer,hir2lir,codegen
 
--Djit.CD_OPT.path.optimizer=ssa,devirt,inline,uce,purge,simplify,dce,uce,lazyexc,memopt,simplify,dce,uce,lower,dessa,statprof,markglobals
--Djit.CD_OPT.path.codegen=lock_method,bbp,gcpoints,cafl,dce1,i8l,early_prop,itrace-,native,constraints,dce2,regalloc,spillgen,layout,copy,rce+,stack,break-,iprof-,emitter!,si_insts,gcmap,info,unlock_method
--Djit.CD_OPT.path.dce1=cg_dce
--Djit.CD_OPT.path.dce2=cg_dce
--Djit.CD_OPT.path.regalloc=bp_regalloc1,bp_regalloc2
--Djit.CD_OPT.path.bp_regalloc1=bp_regalloc
--Djit.CD_OPT.path.bp_regalloc2=bp_regalloc
+-XDjit.CD_OPT.path.optimizer=ssa,devirt,inline,uce,purge,simplify,dce,uce,lazyexc,memopt,simplify,dce,uce,lower,dessa,statprof,markglobals
+-XDjit.CD_OPT.path.codegen=lock_method,bbp,gcpoints,cafl,dce1,i8l,early_prop,itrace-,native,constraints,dce2,regalloc,spillgen,layout,copy,rce+,stack,break-,iprof-,emitter!,si_insts,gcmap,info,unlock_method
+-XDjit.CD_OPT.path.dce1=cg_dce
+-XDjit.CD_OPT.path.dce2=cg_dce
+-XDjit.CD_OPT.path.regalloc=bp_regalloc1,bp_regalloc2
+-XDjit.CD_OPT.path.bp_regalloc1=bp_regalloc
+-XDjit.CD_OPT.path.bp_regalloc2=bp_regalloc
 
 #inliner configuration
--Djit.CD_OPT.CD_OPT_inliner_pipeline.filter=-
--Djit.CD_OPT.CD_OPT_inliner_pipeline.path=ssa,devirt
--Djit.CD_OPT.arg.optimizer.inline.pipeline=CD_OPT_inliner_pipeline
+-XDjit.CD_OPT.CD_OPT_inliner_pipeline.filter=-
+-XDjit.CD_OPT.CD_OPT_inliner_pipeline.path=ssa,devirt
+-XDjit.CD_OPT.arg.optimizer.inline.pipeline=CD_OPT_inliner_pipeline
 
--Djit.CD_OPT.arg.codegen.dce1.early=yes
--Djit.CD_OPT.arg.codegen.regalloc.bp_regalloc1.regs=ALL_GP
--Djit.CD_OPT.arg.codegen.regalloc.bp_regalloc2.regs=ALL_XMM
+-XDjit.CD_OPT.arg.codegen.dce1.early=yes
+-XDjit.CD_OPT.arg.codegen.regalloc.bp_regalloc1.regs=ALL_GP
+-XDjit.CD_OPT.arg.codegen.regalloc.bp_regalloc2.regs=ALL_XMM
 
 
 #system properties

Modified: harmony/enhanced/drlvm/trunk/vm/jitrino/config/ia32/jet.emconf
URL: http://svn.apache.org/viewvc/harmony/enhanced/drlvm/trunk/vm/jitrino/config/ia32/jet.emconf?view=diff&rev=480913&r1=480912&r2=480913
==============================================================================
--- harmony/enhanced/drlvm/trunk/vm/jitrino/config/ia32/jet.emconf (original)
+++ harmony/enhanced/drlvm/trunk/vm/jitrino/config/ia32/jet.emconf Thu Nov 30 04:54:59 2006
@@ -21,7 +21,7 @@
 
 # Options to be passed to JIT
 
--Djit.JET.path=
+-XDjit.JET.path=
 
 #system properties
 -Djava.compiler=jet

Modified: harmony/enhanced/drlvm/trunk/vm/jitrino/config/ia32/opt.emconf
URL: http://svn.apache.org/viewvc/harmony/enhanced/drlvm/trunk/vm/jitrino/config/ia32/opt.emconf?view=diff&rev=480913&r1=480912&r2=480913
==============================================================================
--- harmony/enhanced/drlvm/trunk/vm/jitrino/config/ia32/opt.emconf (original)
+++ harmony/enhanced/drlvm/trunk/vm/jitrino/config/ia32/opt.emconf Thu Nov 30 04:54:59 2006
@@ -22,28 +22,28 @@
 
 # Options to be passed to JIT
 
--Djit.CS_OPT.path=opt_init,translator,optimizer,hir2lir,codegen
+-XDjit.CS_OPT.path=opt_init,translator,optimizer,hir2lir,codegen
 
--Djit.CS_OPT.path.optimizer=ssa,devirt,inline,uce,purge,simplify,dce,uce,lazyexc,memopt,simplify,dce,uce,lower,dessa,statprof,markglobals
--Djit.CS_OPT.path.codegen=lock_method,bbp,gcpoints,cafl,dce1,i8l,early_prop,itrace-,native,constraints,dce2,regalloc,spillgen,layout,copy,rce+,stack,break-,iprof-,emitter!,si_insts,gcmap,info,unlock_method
--Djit.CS_OPT.path.dce1=cg_dce
--Djit.CS_OPT.path.dce2=cg_dce
--Djit.CS_OPT.path.regalloc=bp_regalloc1,bp_regalloc2
--Djit.CS_OPT.path.bp_regalloc1=bp_regalloc
--Djit.CS_OPT.path.bp_regalloc2=bp_regalloc
+-XDjit.CS_OPT.path.optimizer=ssa,devirt,inline,uce,purge,simplify,dce,uce,lazyexc,memopt,simplify,dce,uce,lower,dessa,statprof,markglobals
+-XDjit.CS_OPT.path.codegen=lock_method,bbp,gcpoints,cafl,dce1,i8l,early_prop,itrace-,native,constraints,dce2,regalloc,spillgen,layout,copy,rce+,stack,break-,iprof-,emitter!,si_insts,gcmap,info,unlock_method
+-XDjit.CS_OPT.path.dce1=cg_dce
+-XDjit.CS_OPT.path.dce2=cg_dce
+-XDjit.CS_OPT.path.regalloc=bp_regalloc1,bp_regalloc2
+-XDjit.CS_OPT.path.bp_regalloc1=bp_regalloc
+-XDjit.CS_OPT.path.bp_regalloc2=bp_regalloc
 
 #inliner configuration
--Djit.CS_OPT.CS_OPT_inliner_pipeline.filter=-
--Djit.CS_OPT.CS_OPT_inliner_pipeline.path=ssa,devirt
--Djit.CS_OPT.arg.optimizer.inline.pipeline=CS_OPT_inliner_pipeline
+-XDjit.CS_OPT.CS_OPT_inliner_pipeline.filter=-
+-XDjit.CS_OPT.CS_OPT_inliner_pipeline.path=ssa,devirt
+-XDjit.CS_OPT.arg.optimizer.inline.pipeline=CS_OPT_inliner_pipeline
 
 
--Djit.CS_OPT.arg.codegen.dce1.early=yes
--Djit.CS_OPT.arg.codegen.regalloc.bp_regalloc1.regs=ALL_GP
--Djit.CS_OPT.arg.codegen.regalloc.bp_regalloc2.regs=ALL_XMM
+-XDjit.CS_OPT.arg.codegen.dce1.early=yes
+-XDjit.CS_OPT.arg.codegen.regalloc.bp_regalloc1.regs=ALL_GP
+-XDjit.CS_OPT.arg.codegen.regalloc.bp_regalloc2.regs=ALL_XMM
 
-#-Djit.CS_OPT.arg.log.irdump.file=log/%jit%/%log%/%seqnb%_%class%.%method%.log
-#-Djit.CS_OPT.arg.log=ct,ir,irdump,all
+#-XDjit.CS_OPT.arg.log.irdump.file=log/%jit%/%log%/%seqnb%_%class%.%method%.log
+#-XDjit.CS_OPT.arg.log=ct,ir,irdump,all
 
 
 #system properties

Modified: harmony/enhanced/drlvm/trunk/vm/jitrino/config/ia32/server.emconf
URL: http://svn.apache.org/viewvc/harmony/enhanced/drlvm/trunk/vm/jitrino/config/ia32/server.emconf?view=diff&rev=480913&r1=480912&r2=480913
==============================================================================
--- harmony/enhanced/drlvm/trunk/vm/jitrino/config/ia32/server.emconf (original)
+++ harmony/enhanced/drlvm/trunk/vm/jitrino/config/ia32/server.emconf Thu Nov 30 04:54:59 2006
@@ -37,58 +37,58 @@
 
 #options for JIT
 
--Djit.JET_CLINIT.path=
+-XDjit.JET_CLINIT.path=
 
 
--Djit.SD1_OPT.path=opt_init,translator,optimizer,hir2lir,codegen
+-XDjit.SD1_OPT.path=opt_init,translator,optimizer,hir2lir,codegen
 
--Djit.SD1_OPT.path.optimizer=ssa,simplify,dce,uce,edge_instrument,dessa,statprof,markglobals
--Djit.SD1_OPT.path.codegen=lock_method,bbp,gcpoints,cafl,dce1,i8l,early_prop,itrace-,native,constraints,dce2,regalloc,spillgen,layout,copy,rce+,stack,break-,iprof-,emitter!,si_insts,gcmap,info,unlock_method
--Djit.SD1_OPT.path.dce1=cg_dce
--Djit.SD1_OPT.path.dce2=cg_dce
--Djit.SD1_OPT.path.regalloc=bp_regalloc1,bp_regalloc2
--Djit.SD1_OPT.path.bp_regalloc1=bp_regalloc
--Djit.SD1_OPT.path.bp_regalloc2=bp_regalloc
-
--Djit.SD1_OPT.arg.codegen.dce1.early=yes
--Djit.SD1_OPT.arg.codegen.regalloc.bp_regalloc1.regs=ALL_GP
--Djit.SD1_OPT.arg.codegen.regalloc.bp_regalloc2.regs=ALL_XMM
-
--Djit.SD2_OPT.path=opt_init,translator,optimizer,hir2lir,codegen
-
--Djit.SD2_OPT.path.optimizer=ssa,simplify,dce,uce,edge_annotate,devirt,inline,uce,purge,simplify,dce,uce,lazyexc,inline_helpers,purge,simplify,uce,dce,dessa,statprof,peel,ssa,hvn,simplify,dce,uce,lower,dce,uce,memopt,reassoc,dce,uce,hvn,dce,uce,abcd,dce,uce,gcm,dessa,statprof,markglobals
--Djit.SD2_OPT.path.codegen=lock_method,bbp,gcpoints,cafl,dce1,i8l,early_prop,itrace-,native,constraints,dce2,regalloc,spillgen,layout,copy,rce+,stack,break-,iprof-,emitter!,si_insts,gcmap,info,unlock_method
--Djit.SD2_OPT.path.dce1=cg_dce
--Djit.SD2_OPT.path.dce2=cg_dce
--Djit.SD2_OPT.path.regalloc=bp_regalloc1,bp_regalloc2
--Djit.SD2_OPT.path.bp_regalloc1=bp_regalloc
--Djit.SD2_OPT.path.bp_regalloc2=bp_regalloc
+-XDjit.SD1_OPT.path.optimizer=ssa,simplify,dce,uce,edge_instrument,dessa,statprof,markglobals
+-XDjit.SD1_OPT.path.codegen=lock_method,bbp,gcpoints,cafl,dce1,i8l,early_prop,itrace-,native,constraints,dce2,regalloc,spillgen,layout,copy,rce+,stack,break-,iprof-,emitter!,si_insts,gcmap,info,unlock_method
+-XDjit.SD1_OPT.path.dce1=cg_dce
+-XDjit.SD1_OPT.path.dce2=cg_dce
+-XDjit.SD1_OPT.path.regalloc=bp_regalloc1,bp_regalloc2
+-XDjit.SD1_OPT.path.bp_regalloc1=bp_regalloc
+-XDjit.SD1_OPT.path.bp_regalloc2=bp_regalloc
+
+-XDjit.SD1_OPT.arg.codegen.dce1.early=yes
+-XDjit.SD1_OPT.arg.codegen.regalloc.bp_regalloc1.regs=ALL_GP
+-XDjit.SD1_OPT.arg.codegen.regalloc.bp_regalloc2.regs=ALL_XMM
+
+-XDjit.SD2_OPT.path=opt_init,translator,optimizer,hir2lir,codegen
+
+-XDjit.SD2_OPT.path.optimizer=ssa,simplify,dce,uce,edge_annotate,devirt,inline,uce,purge,simplify,dce,uce,lazyexc,inline_helpers,purge,simplify,uce,dce,dessa,statprof,peel,ssa,hvn,simplify,dce,uce,lower,dce,uce,memopt,reassoc,dce,uce,hvn,dce,uce,abcd,dce,uce,gcm,dessa,statprof,markglobals
+-XDjit.SD2_OPT.path.codegen=lock_method,bbp,gcpoints,cafl,dce1,i8l,early_prop,itrace-,native,constraints,dce2,regalloc,spillgen,layout,copy,rce+,stack,break-,iprof-,emitter!,si_insts,gcmap,info,unlock_method
+-XDjit.SD2_OPT.path.dce1=cg_dce
+-XDjit.SD2_OPT.path.dce2=cg_dce
+-XDjit.SD2_OPT.path.regalloc=bp_regalloc1,bp_regalloc2
+-XDjit.SD2_OPT.path.bp_regalloc1=bp_regalloc
+-XDjit.SD2_OPT.path.bp_regalloc2=bp_regalloc
 
 #inliner configuration
--Djit.SD2_OPT.SD2_OPT_inliner_pipeline.filter=-
--Djit.SD2_OPT.SD2_OPT_inliner_pipeline.path=ssa,simplify,dce,uce,edge_annotate,devirt
--Djit.SD2_OPT.arg.optimizer.inline.pipeline=SD2_OPT_inliner_pipeline
--Djit.SD2_OPT.arg.optimizer.inline.connect_early=false
+-XDjit.SD2_OPT.SD2_OPT_inliner_pipeline.filter=-
+-XDjit.SD2_OPT.SD2_OPT_inliner_pipeline.path=ssa,simplify,dce,uce,edge_annotate,devirt
+-XDjit.SD2_OPT.arg.optimizer.inline.pipeline=SD2_OPT_inliner_pipeline
+-XDjit.SD2_OPT.arg.optimizer.inline.connect_early=false
 
 #helper inliner configuration
--Djit.SD2_OPT.SD2_OPT_helper_inliner_pipeline.filter=-
--Djit.SD2_OPT.SD2_OPT_helper_inliner_pipeline.path=ssa
--Djit.SD2_OPT.arg.optimizer.inline_helpers.pipeline=SD2_OPT_helper_inliner_pipeline
-
--Djit.SD2_OPT.arg.optimizer.inline_helpers.newObj=on
--Djit.SD2_OPT.arg.optimizer.inline_helpers.newObj_className=org/apache/harmony/drlvm/gc_cc/GCHelper
--Djit.SD2_OPT.arg.optimizer.inline_helpers.newObj_methodName=alloc
--Djit.SD2_OPT.arg.optimizer.inline_helpers.newObj_hotnessPercent=1
+-XDjit.SD2_OPT.SD2_OPT_helper_inliner_pipeline.filter=-
+-XDjit.SD2_OPT.SD2_OPT_helper_inliner_pipeline.path=ssa
+-XDjit.SD2_OPT.arg.optimizer.inline_helpers.pipeline=SD2_OPT_helper_inliner_pipeline
+
+-XDjit.SD2_OPT.arg.optimizer.inline_helpers.newObj=on
+-XDjit.SD2_OPT.arg.optimizer.inline_helpers.newObj_className=org/apache/harmony/drlvm/gc_cc/GCHelper
+-XDjit.SD2_OPT.arg.optimizer.inline_helpers.newObj_methodName=alloc
+-XDjit.SD2_OPT.arg.optimizer.inline_helpers.newObj_hotnessPercent=1
 
 
--Djit.SD2_OPT.arg.codegen.dce1.early=yes
--Djit.SD2_OPT.arg.codegen.regalloc.bp_regalloc1.regs=ALL_GP
--Djit.SD2_OPT.arg.codegen.regalloc.bp_regalloc2.regs=ALL_XMM
+-XDjit.SD2_OPT.arg.codegen.dce1.early=yes
+-XDjit.SD2_OPT.arg.codegen.regalloc.bp_regalloc1.regs=ALL_GP
+-XDjit.SD2_OPT.arg.codegen.regalloc.bp_regalloc2.regs=ALL_XMM
 
 
 #system properties
 -Djava.compiler=server
 
-#GC properties
+#GC magics support
 -Dvm.components.gc_cc.startupclass=org.apache.harmony.drlvm.gc_cc.GCHelper
 -Dvm.components.gc_cc.classpath=gc_cc.jar

Modified: harmony/enhanced/drlvm/trunk/vm/jitrino/config/ia32/server_static.emconf
URL: http://svn.apache.org/viewvc/harmony/enhanced/drlvm/trunk/vm/jitrino/config/ia32/server_static.emconf?view=diff&rev=480913&r1=480912&r2=480913
==============================================================================
--- harmony/enhanced/drlvm/trunk/vm/jitrino/config/ia32/server_static.emconf (original)
+++ harmony/enhanced/drlvm/trunk/vm/jitrino/config/ia32/server_static.emconf Thu Nov 30 04:54:59 2006
@@ -22,24 +22,24 @@
 
 # Options to be passed to JIT
 
--Djit.SS_OPT.path=opt_init,translator,optimizer,hir2lir,codegen
+-XDjit.SS_OPT.path=opt_init,translator,optimizer,hir2lir,codegen
 
--Djit.SS_OPT.path.optimizer=ssa,simplify,dce,uce,statprof,devirt,inline,uce,purge,simplify,dce,uce,lazyexc,hvn,dce,uce,dessa,statprof,peel,ssa,hvn,simplify,dce,uce,lower,dce,uce,memopt,reassoc,dce,uce,hvn,dce,uce,abcd,dce,uce,gcm,dessa,statprof,markglobals
--Djit.SS_OPT.path.codegen=lock_method,bbp,gcpoints,cafl,dce1,i8l,early_prop,itrace-,native,constraints,dce2,regalloc,spillgen,layout,copy,rce+,stack,break-,iprof-,emitter!,si_insts,gcmap,info,unlock_method
--Djit.SS_OPT.path.dce1=cg_dce
--Djit.SS_OPT.path.dce2=cg_dce
--Djit.SS_OPT.path.regalloc=bp_regalloc1,bp_regalloc2
--Djit.SS_OPT.path.bp_regalloc1=bp_regalloc
--Djit.SS_OPT.path.bp_regalloc2=bp_regalloc
+-XDjit.SS_OPT.path.optimizer=ssa,simplify,dce,uce,statprof,devirt,inline,uce,purge,simplify,dce,uce,lazyexc,hvn,dce,uce,dessa,statprof,peel,ssa,hvn,simplify,dce,uce,lower,dce,uce,memopt,reassoc,dce,uce,hvn,dce,uce,abcd,dce,uce,gcm,dessa,statprof,markglobals
+-XDjit.SS_OPT.path.codegen=lock_method,bbp,gcpoints,cafl,dce1,i8l,early_prop,itrace-,native,constraints,dce2,regalloc,spillgen,layout,copy,rce+,stack,break-,iprof-,emitter!,si_insts,gcmap,info,unlock_method
+-XDjit.SS_OPT.path.dce1=cg_dce
+-XDjit.SS_OPT.path.dce2=cg_dce
+-XDjit.SS_OPT.path.regalloc=bp_regalloc1,bp_regalloc2
+-XDjit.SS_OPT.path.bp_regalloc1=bp_regalloc
+-XDjit.SS_OPT.path.bp_regalloc2=bp_regalloc
 
 #inliner configuration
--Djit.SS_OPT.SS_OPT_inliner_pipeline.filter=-
--Djit.SS_OPT.SS_OPT_inliner_pipeline.path=ssa,simplify,dce,uce,statprof,devirt
--Djit.SS_OPT.arg.optimizer.inline.pipeline=SS_OPT_inliner_pipeline
+-XDjit.SS_OPT.SS_OPT_inliner_pipeline.filter=-
+-XDjit.SS_OPT.SS_OPT_inliner_pipeline.path=ssa,simplify,dce,uce,statprof,devirt
+-XDjit.SS_OPT.arg.optimizer.inline.pipeline=SS_OPT_inliner_pipeline
 
--Djit.SS_OPT.arg.codegen.dce1.early=yes
--Djit.SS_OPT.arg.codegen.regalloc.bp_regalloc1.regs=ALL_GP
--Djit.SS_OPT.arg.codegen.regalloc.bp_regalloc2.regs=ALL_XMM
+-XDjit.SS_OPT.arg.codegen.dce1.early=yes
+-XDjit.SS_OPT.arg.codegen.regalloc.bp_regalloc1.regs=ALL_GP
+-XDjit.SS_OPT.arg.codegen.regalloc.bp_regalloc2.regs=ALL_XMM
 
 
 #system properties

Modified: harmony/enhanced/drlvm/trunk/vm/jitrino/config/ia32/ti.emconf
URL: http://svn.apache.org/viewvc/harmony/enhanced/drlvm/trunk/vm/jitrino/config/ia32/ti.emconf?view=diff&rev=480913&r1=480912&r2=480913
==============================================================================
--- harmony/enhanced/drlvm/trunk/vm/jitrino/config/ia32/ti.emconf (original)
+++ harmony/enhanced/drlvm/trunk/vm/jitrino/config/ia32/ti.emconf Thu Nov 30 04:54:59 2006
@@ -20,7 +20,7 @@
 JET_TI.file=jitrino
 
 #JIT options
--Djit.JET_TI.path=
+-XDjit.JET_TI.path=
 
 
 #system properties

Modified: harmony/enhanced/drlvm/trunk/vm/jitrino/src/jet/compiler.cpp
URL: http://svn.apache.org/viewvc/harmony/enhanced/drlvm/trunk/vm/jitrino/src/jet/compiler.cpp?view=diff&rev=480913&r1=480912&r2=480913
==============================================================================
--- harmony/enhanced/drlvm/trunk/vm/jitrino/src/jet/compiler.cpp (original)
+++ harmony/enhanced/drlvm/trunk/vm/jitrino/src/jet/compiler.cpp Thu Nov 30 04:54:59 2006
@@ -1370,7 +1370,7 @@
     VTBL_BASE = (const char*)vm_get_vtable_base();
     NULL_REF  = g_refs_squeeze ? OBJ_BASE : NULL;
 
-    g_jvmtiMode = vm_get_property_value_boolean("vm.jvmti.enabled", false);
+    g_jvmtiMode = (bool)get_boolean_property("vm.jvmti.enabled", false, VM_PROPERTIES);
     
     rt_helper_monitor_enter = 
                 (char*)vm_get_rt_support_addr(VM_RT_MONITOR_ENTER);

Modified: harmony/enhanced/drlvm/trunk/vm/jitrino/src/main/PMF.cpp
URL: http://svn.apache.org/viewvc/harmony/enhanced/drlvm/trunk/vm/jitrino/src/main/PMF.cpp?view=diff&rev=480913&r1=480912&r2=480913
==============================================================================
--- harmony/enhanced/drlvm/trunk/vm/jitrino/src/main/PMF.cpp (original)
+++ harmony/enhanced/drlvm/trunk/vm/jitrino/src/main/PMF.cpp Thu Nov 30 04:54:59 2006
@@ -1352,20 +1352,18 @@
 
 void PMF::processVMProperties ()
 {
-    PropertiesIteratorHandle ph = vm_properties_iterator_create();
-    for (;;)
-    {
-        const char* key = vm_properties_get_name(ph);
-        if (strncmp("jit.", key, 4) == 0)
+    char** keys = get_properties_keys(VM_PROPERTIES);
+    int i = 0;
+    while (keys[i] != NULL) {
+        if (strncmp("jit.", keys[i], 4) == 0)
         {
-            const char* value = vm_properties_get_string_value(ph);
-            processCmd(key+4, value);
+            char* value = get_property(keys[i], VM_PROPERTIES);
+            processCmd(keys[i] + 4, value);
+            destroy_property_value(value);
         }
-
-        if (!vm_properties_iterator_advance(ph))
-            break;
+        i++;
     }
-    vm_properties_iterator_destroy(ph);
+    destroy_properties_keys(keys);
 }
 
 

Modified: harmony/enhanced/drlvm/trunk/vm/jitrino/src/vm/drl/DrlJITInterface.cpp
URL: http://svn.apache.org/viewvc/harmony/enhanced/drlvm/trunk/vm/jitrino/src/vm/drl/DrlJITInterface.cpp?view=diff&rev=480913&r1=480912&r2=480913
==============================================================================
--- harmony/enhanced/drlvm/trunk/vm/jitrino/src/vm/drl/DrlJITInterface.cpp (original)
+++ harmony/enhanced/drlvm/trunk/vm/jitrino/src/vm/drl/DrlJITInterface.cpp Thu Nov 30 04:54:59 2006
@@ -84,13 +84,10 @@
     initMessage = initMessage + mode + " compiler mode";
     INFO(initMessage.c_str());
     Jitrino::Init(jit, name);
-#ifndef PLATFORM_POSIX
-    //
-    // Suppress dialog boxes for regression runs.
-    //
-#ifdef _DEBUG
-    if (!vm_get_boolean_property_value_with_default("vm.assert_dialog")) {
 
+#if defined (PLATFORM_NT) && defined (_DEBUG)
+    if (!get_boolean_property("vm.assert_dialog", false, VM_PROPERTIES))
+    {
         _CrtSetReportMode(_CRT_ASSERT, _CRTDBG_MODE_FILE);
         _CrtSetReportFile(_CRT_ASSERT, _CRTDBG_FILE_STDOUT);
         _CrtSetReportMode(_CRT_ERROR,  _CRTDBG_MODE_FILE);
@@ -99,7 +96,6 @@
         _CrtSetReportFile(_CRT_WARN, _CRTDBG_FILE_STDOUT);
         _set_error_mode(_OUT_TO_STDERR);
     }
-#endif
 #endif
 
 #ifdef USE_FAST_PATH

Modified: harmony/enhanced/drlvm/trunk/vm/port/src/lil/ipf/pim/m2n_ipf.cpp
URL: http://svn.apache.org/viewvc/harmony/enhanced/drlvm/trunk/vm/port/src/lil/ipf/pim/m2n_ipf.cpp?view=diff&rev=480913&r1=480912&r2=480913
==============================================================================
--- harmony/enhanced/drlvm/trunk/vm/port/src/lil/ipf/pim/m2n_ipf.cpp (original)
+++ harmony/enhanced/drlvm/trunk/vm/port/src/lil/ipf/pim/m2n_ipf.cpp Thu Nov 30 04:54:59 2006
@@ -32,7 +32,6 @@
 #include "open/types.h"
 #include "open/vm_util.h"
 #include "stub_code_utils.h"
-#include "open/vm_util.h" // For vm_get_boolean_property_value_with_default
 #include "interpreter.h"
 
 

Modified: harmony/enhanced/drlvm/trunk/vm/vmcore/include/classloader.h
URL: http://svn.apache.org/viewvc/harmony/enhanced/drlvm/trunk/vm/vmcore/include/classloader.h?view=diff&rev=480913&r1=480912&r2=480913
==============================================================================
--- harmony/enhanced/drlvm/trunk/vm/vmcore/include/classloader.h (original)
+++ harmony/enhanced/drlvm/trunk/vm/vmcore/include/classloader.h Thu Nov 30 04:54:59 2006
@@ -400,7 +400,7 @@
         const String* class_name, bool* not_found);
     Class* LoadFromJarFile( JarFile* jar_file,
         const char* class_name_in_jar, const String* class_name, bool* not_found);
-    void SetClasspathFromProperty(const char* prop_string, apr_pool_t *tmp_pool);
+    void SetClasspathFromString(char* prop_string, apr_pool_t *tmp_pool);
     void SetClasspathFromJarFile(JarFile *jar, apr_pool_t *tmp_pool);
 
     BCPElements m_BCPElements;

Modified: harmony/enhanced/drlvm/trunk/vm/vmcore/include/environment.h
URL: http://svn.apache.org/viewvc/harmony/enhanced/drlvm/trunk/vm/vmcore/include/environment.h?view=diff&rev=480913&r1=480912&r2=480913
==============================================================================
--- harmony/enhanced/drlvm/trunk/vm/vmcore/include/environment.h (original)
+++ harmony/enhanced/drlvm/trunk/vm/vmcore/include/environment.h Thu Nov 30 04:54:59 2006
@@ -45,7 +45,6 @@
     apr_pool_t*               mem_pool; // memory pool
     BootstrapClassLoader*     bootstrap_class_loader;
     UserDefinedClassLoader*   system_class_loader;
-    Properties*               properties;
     DebugUtilsTI*             TI;
     NSOTableItem*             nsoTable;
     void*                     portLib;  // Classlib's port library
@@ -262,9 +261,19 @@
         return ready_for_exceptions;
     }
 
+    Properties* JavaProperties() {
+        return m_java_properties;
+    }
+
+    Properties* VmProperties() {
+        return m_vm_properties;
+    }
+
 private:
     bool bootstrapping;
     bool ready_for_exceptions;
+    Properties* m_java_properties;
+    Properties* m_vm_properties;
 };
 
 #endif // _ENVIRONMENT_H

Modified: harmony/enhanced/drlvm/trunk/vm/vmcore/include/init.h
URL: http://svn.apache.org/viewvc/harmony/enhanced/drlvm/trunk/vm/vmcore/include/init.h?view=diff&rev=480913&r1=480912&r2=480913
==============================================================================
--- harmony/enhanced/drlvm/trunk/vm/vmcore/include/init.h (original)
+++ harmony/enhanced/drlvm/trunk/vm/vmcore/include/init.h Thu Nov 30 04:54:59 2006
@@ -14,11 +14,6 @@
  *  See the License for the specific language governing permissions and
  *  limitations under the License.
  */
-/** 
- * @author Euguene Ostrovsky
- * @version $Revision: 1.1.2.1.4.6 $
- */  
-
 
 #ifndef _INIT_H
 #define _INIT_H
@@ -37,5 +32,6 @@
 void parse_vm_arguments(Global_Env *p_env);
 void parse_jit_arguments(JavaVMInitArgs* vm_arguments);
 void print_generic_help();
+void initialize_properties(Global_Env *p_env);
 
 #endif //_INIT_H

Modified: harmony/enhanced/drlvm/trunk/vm/vmcore/include/jarfile_util.h
URL: http://svn.apache.org/viewvc/harmony/enhanced/drlvm/trunk/vm/vmcore/include/jarfile_util.h?view=diff&rev=480913&r1=480912&r2=480913
==============================================================================
--- harmony/enhanced/drlvm/trunk/vm/vmcore/include/jarfile_util.h (original)
+++ harmony/enhanced/drlvm/trunk/vm/vmcore/include/jarfile_util.h Thu Nov 30 04:54:59 2006
@@ -68,12 +68,7 @@
     }
     // get attribute of manifest
     Properties *prop = manifest->GetMainProperties();
-    // search manifest attribute
-    Prop_String *value = (Prop_String*)prop->get(manifest_attr);
-    if(!value) {
-        return NULL;
-    }
-    return (const char*)value->value;
+    return prop->get(manifest_attr);
 } // archive_get_manifest_attr
 
 inline const char* archive_get_main_class_name(JarFile *jarfl)

Modified: harmony/enhanced/drlvm/trunk/vm/vmcore/include/properties.h
URL: http://svn.apache.org/viewvc/harmony/enhanced/drlvm/trunk/vm/vmcore/include/properties.h?view=diff&rev=480913&r1=480912&r2=480913
==============================================================================
--- harmony/enhanced/drlvm/trunk/vm/vmcore/include/properties.h (original)
+++ harmony/enhanced/drlvm/trunk/vm/vmcore/include/properties.h Thu Nov 30 04:54:59 2006
@@ -14,493 +14,33 @@
  *  See the License for the specific language governing permissions and
  *  limitations under the License.
  */
-/** 
- * @author Intel, Alexey V. Varlamov, Gregory Shimansky
- * @version $Revision: 1.1.2.1.4.6 $
- */  
-
-
 
 #ifndef _VM_PROPERTIES_H
 #define _VM_PROPERTIES_H
 
-#include "platform.h"
-#include "environment.h"
-#include <string.h>
-
-#ifdef USE_MEM_MANAGER_FOR_ALLOCATION 
-#include "tl/memory_pool.h"
-#endif
-
-/***************************************************************************************/
-class Prop_Value
-{
-public:
-    virtual ~Prop_Value(){}
-
-    virtual Prop_Value* clone() = 0;        /*Clone this Prop_Value*/
-
-    virtual void print() = 0;
-
-    virtual const char* as_string() { return NULL; }
-
-#ifdef USE_MEM_MANAGER_FOR_ALLOCATION 
-public:
-    void *operator new(size_t sz, tl::MemoryPool& m) {
-        return m.alloc(sz);
-    }
-    void operator delete(void *obj, tl::MemoryPool& m){
-        //do nothing
-    };
-    void *operator new(size_t sz) {
-        return m_malloc(sz);
-    }
-    void operator delete(void *obj){
-        m_free(obj);
-    };
-    virtual Prop_Value* clone(tl::MemoryPool& m) = 0;
-#endif
-};
-
-class Prop_String: public Prop_Value
-{
-public:
-    Prop_String()
-    {
-        value = NULL;
-    }
-
-    Prop_String(char* v)                    /*Do not clone v*/
-    {
-        value = v;
-    }
-    ~Prop_String()
-    {
-        if(value)
-            STD_FREE(value);
-    }
-    Prop_Value* clone()
-    {
-        return (new Prop_String(strdup((char*)value))); /*use strdup() to clone the value*/
-    }
-#ifdef USE_MEM_MANAGER_FOR_ALLOCATION 
-    Prop_Value* clone(tl::MemoryPool& m)
-    {
-        return (new (m) Prop_String(strdup((char*)value))); /*use strdup() to clone the value*/
-    }
-#endif
-    void print()
-    {
-        printf("%s", value);
-    } 
-    const char* as_string()
-    {
-        return value;
-    }
-public:
-    char *value;
-};
-
-/***************************************************************************************/
-
-class Prop_uLong: public Prop_Value
-{
-public:
-    Prop_uLong()
-    {
-        value = 0;
-    }
-    Prop_uLong(unsigned long v)
-    {
-        value = v;
-    }
-    ~Prop_uLong()
-    {
-    }
-    Prop_Value* clone()
-    {
-        return (new Prop_uLong(((unsigned long)value)));
-    }
-#ifdef USE_MEM_MANAGER_FOR_ALLOCATION 
-    Prop_Value* clone(tl::MemoryPool& m)
-    {
-        return (new (m) Prop_uLong(((unsigned long)value)));
-    }
-#endif
-    void print()
-    {
-        printf("%lu", ((unsigned long)value));
-    }
-public:
-    unsigned long value;
-};
-
-
-/***************************************************************************************/
-struct Prop_entry
-{
-    char *key;
-    Prop_Value *value;                  /*value can be Prop_Sting,Prop_Properties,etc.*/
-    struct Prop_entry *next;
-    int compareTo(const char *akey)
-    {
-        return strcmp(akey, key);
-    }
-    void replace(Prop_entry *e)
-    {
-        if(value)delete value;
-        value = e->value->clone();  /*clone e's value*/
-    }
-public:
-    Prop_entry()
-    {
-        key = NULL;
-        value = NULL;
-        next = NULL;
-    }
-    ~Prop_entry()
-    {
-        if(key) STD_FREE(key); 
-        if(value)delete value;
-        if(next)delete next;
-    }
-#ifdef USE_MEM_MANAGER_FOR_ALLOCATION 
-public:
-    void *operator new(size_t sz, tl::MemoryPool& m) {
-        return m.alloc(sz);
-    }
-    void operator delete(void *obj, tl::MemoryPool& m){
-        //do nothing
-    };
-    void *operator new(size_t sz) {
-        return m_malloc(sz);
-    }
-    void operator delete(void *obj){
-        m_free(obj);
-    };
-#endif
-};
-
-
-/**************** The following is Properties *********************/
+#include <apr_hash.h>
+#include <apr_pools.h>
+#include <apr_thread_rwlock.h>
 
 class Properties
 {
-
 public:
-    class Iterator
-    {
-    private:
-        Properties *prop;
-        Prop_entry *current;
-        int idx;
-        Iterator(Properties *prop_)         /*Couldn't new instances except Properties*/
-        {
-            prop = prop_;
-        }
-    public:
-        Prop_entry *currentEntry() const {return current;}
-        void reset()
-        {
-            current = NULL;
-            idx = 0;
-        }
-        const Prop_entry* next()
-        {
-            if(current && current->next)
-                return current = current->next;
-            int i = current? idx+1 : idx;
-            for(; i < prop->BUCKET_SIZE; i++)
-                if(prop->bucket[i])
-                    break;
-            if(i == prop->BUCKET_SIZE) {
-                current = NULL;
-            } else {
-                current = prop->bucket[i];
-            }
-            idx = i;
-            return current;
-        }
-        friend class Properties;
-    }; //end of class Iterator
-
-    friend class Properties::Iterator;
-public:
-    Properties()
-    {
-        BUCKET_SIZE = 11; //wgs: is it reasonable?
-        init(BUCKET_SIZE);
-    }
-    Properties(long size_)
-    {
-        BUCKET_SIZE = size_;
-        init(BUCKET_SIZE);
-    }
-    ~Properties(){
-        delete iterator;
-        clear();
-        STD_FREE(bucket);
-    }
-    Iterator *getIterator(){
-        iterator->reset();
-        return iterator;
-    }
-    Iterator* getNewIterator()
-    {
-        Iterator* iter = new Iterator(this);
-        iter->reset();
-        return iter;
-    }
-    void destroyIterator(Iterator* it)
-    {
-        assert(it!=iterator);
-        assert(it->prop == this);
-        delete it;
-    }
-    void add(const char* k, Prop_Value* v);     /*Caller delete k and v*/
-#ifdef USE_MEM_MANAGER_FOR_ALLOCATION 
-    void add(const char* k, Prop_Value* v, tl::MemoryPool& m);
-#endif
-    void add(Prop_entry* e);                /*Caller can not delete e*/
-    void add(const char *line);
-    inline void clear();
-    Properties* clone();
-    Prop_Value* get(const char* key);
-    Prop_entry* get_entry(const char* key);
-    void print();
-    bool contains_key(const char* key);
-
+    Properties();
+    ~Properties() {
+        apr_pool_destroy(local_ht_pool);
+    }
+    void set(const char * key, const char * value);
+    char* get(const char * key);
+    void destroy(char* value);
+    bool is_set(const char * key);
+    void unset(const char * key);
+    char** get_keys();
+    char** get_keys_staring_with(const char* prefix);
+    void destroy(char** keys);
 private:
-    Prop_entry** bucket;
-    int index_of(const char*key);
-    Iterator *iterator;
-    long BUCKET_SIZE;
-    void init(long size_){
-        bucket = (Prop_entry**)STD_CALLOC(sizeof(Prop_entry*), size_);
-        iterator = new Iterator(this);
-    }
-};
-
-typedef struct _properties* PropertiesHandle;
-
-VMEXPORT const char* properties_get_string_property(PropertiesHandle prop, const char* key);
-VMEXPORT void properties_set_string_property(PropertiesHandle ph, const char* key, const char* value);
-VMEXPORT PropertiesIteratorHandle properties_iterator_create(PropertiesHandle ph);
-VMEXPORT void properties_iterator_destroy(PropertiesHandle ph, PropertiesIteratorHandle pih);
-VMEXPORT Boolean properties_iterator_advance(PropertiesIteratorHandle pih);
-VMEXPORT const char* properties_get_name(PropertiesIteratorHandle pih);
-VMEXPORT const char* properties_get_string_value(PropertiesIteratorHandle pih);
-
-inline int Properties::index_of(const char *key)
-{
-    unsigned int hash = 0;
-    const char *end = key - 1;
-    while(*(++end));
-    for (; key < end; key += 3)
-        hash = hash * 31 + *key;
-    return hash % BUCKET_SIZE;
-}
-
-inline void Properties::add(const char* k,Prop_Value* v)
-{
-    Prop_entry* e = new Prop_entry();
-#ifdef CLONE_ENTRY_WHEN_ADD
-    e->key = strdup(k);                     /*caller can delete k*/
-    e->value = v->clone();                  /*caller can delete v*/
-#else
-    e->key = (char*)k;
-    e->value = v;
-#endif
-    add(e);                                 /*e will be invalid*/
-}
-
-#ifdef USE_MEM_MANAGER_FOR_ALLOCATION 
-inline void Properties::add(const char* k,Prop_Value* v, tl::MemoryPool& m)
-{
-    Prop_entry* e = new (m) Prop_entry();
-    e->key = strdup(k);                     /*caller can delete k*/
-    e->value = v->clone(m);                 /*caller can delete v*/
-    add(e);                                 /*e will be invalid*/
-}
-#endif
-
-inline char* unquote(char *str)
-{
-    const char *tokens = " \t\n\r\'\"";
-    size_t i = strspn(str, tokens);
-    str += i;
-    char *p = str + strlen(str) - 1;
-    while(strchr(tokens, *p) && p >= str)
-        *(p--) = '\0';
-    return str;
-}
-
-inline void Properties::add(const char *line)
-{
-    // Ignore the line if it starts with #
-    if (line[0]=='#') return;
-    char *src = strdup(line);
-    char *tok = strchr(src, '=');
-    if(tok)
-    {
-        *tok = '\0';
-        Prop_entry *e = new Prop_entry();
-        e->key = strdup(unquote(src));
-        e->value = new Prop_String(strdup(unquote(tok + 1)));
-        if((e->key[0] == '\0') ) // esostrov: properties may have emply string values || (((Prop_String*)e->value)->value[0] == '\0'))
-            delete e;
-        else
-            add(e);
-    }
-    STD_FREE(src);
-}
-
-inline void Properties::print()
-{
-    int i = 0;
-    for(i = 0; i < BUCKET_SIZE; i++)
-        if(bucket[i]){
-            Prop_entry *e = bucket[i];
-            while(e)
-            {
-                printf("%s=", e->key);
-                e->value->print();
-                printf("\n");
-                e = e->next;
-            }
-        }
-}
-
-inline void Properties::clear()
-{
-    for(int i = 0; i < BUCKET_SIZE; i++)
-        if(bucket[i])
-        {
-            delete bucket[i];
-            bucket[i]=NULL;
-        }
-}
-
-inline Properties* Properties::clone()
-{
-    Properties* cloned_p = new Properties(BUCKET_SIZE);
-    for(int i = 0; i < BUCKET_SIZE; i++)
-        if(bucket[i])
-        {
-            Prop_entry *itr = bucket[i];
-            while(itr)
-            {
-                Prop_entry *newe = new Prop_entry();
-                newe->key = strdup(itr->key);
-                newe->value = itr->value->clone();
-                cloned_p->add(newe);                /*Can NOT delete newe*/
-                itr = itr->next;
-            }
-        }
-    return cloned_p;
-
-}
-
-inline Prop_Value* Properties::get(const char* key)
-{
-    int idx = index_of(key);
-    if(bucket[idx] == NULL)
-        return NULL;
-
-    Prop_entry *itr = bucket[idx];
-    while(itr)
-    {
-        int cmp = itr->compareTo(key);
-        if(cmp > 0)
-            return NULL;
-        if(cmp == 0)
-            return itr->value;
-        itr = itr->next;
-    }
-    return NULL;
-}
-
-inline Prop_entry* Properties::get_entry(const char* key)
-{
-    int idx = index_of(key);
-    if(bucket[idx] == NULL)
-        return NULL;
-
-    Prop_entry *itr = bucket[idx];
-    while(itr)
-    {
-        int cmp = itr->compareTo(key);
-        if(cmp > 0)
-            return NULL;
-        if(cmp == 0)
-            return itr;
-        itr = itr->next;
-    }
-    return NULL;
-}
-
-inline bool Properties::contains_key(const char* key)
-{
-    int idx = index_of(key);
-    if(bucket[idx] == NULL)
-        return false;
-
-    Prop_entry *itr = bucket[idx];
-    while(itr)
-    {
-        int cmp = itr->compareTo(key);
-        if(cmp > 0)
-            return false;
-        if(cmp == 0)
-            return true;
-        itr = itr->next;
-    }
-    return false;
-}
-
-
-/***************************************************************************************/
-
-class Prop_Properties: public Prop_Value
-{
-public:
-    Prop_Properties()
-    {
-        value = NULL;
-    }
-    Prop_Properties(Properties* v)
-    {
-        value = v;
-    }
-    ~Prop_Properties()
-    {
-        if(value)
-            delete value;
-    }
-    Prop_Value* clone()
-    {
-        return (new Prop_Properties(value->clone()));
-    }
-#ifdef USE_MEM_MANAGER_FOR_ALLOCATION 
-    Prop_Value* clone(tl::MemoryPool& m)
-    {
-        return (new (m) Prop_Properties(value->clone()));
-    }
-#endif
-
-    void print()
-    {
-        value->print();
-    }
-public:
-    Properties* value;
+    apr_pool_t* local_ht_pool;
+    apr_hash_t* hashtables_array;
+    apr_thread_rwlock_t* rwlock_array;
 };
-
-void initialize_properties(Global_Env *p_env, Properties &prop);
-void add_to_properties(Properties& prop, const char* line);
-VMEXPORT void add_pair_to_properties(Properties& prop, const char* key, const char* value);
-void post_initialize_ee_dlls(PropertiesHandle ph);
-
-
 
 #endif // _VM_PROPERTIES_H

Modified: harmony/enhanced/drlvm/trunk/vm/vmcore/src/class_support/C_Interface.cpp
URL: http://svn.apache.org/viewvc/harmony/enhanced/drlvm/trunk/vm/vmcore/src/class_support/C_Interface.cpp?view=diff&rev=480913&r1=480912&r2=480913
==============================================================================
--- harmony/enhanced/drlvm/trunk/vm/vmcore/src/class_support/C_Interface.cpp (original)
+++ harmony/enhanced/drlvm/trunk/vm/vmcore/src/class_support/C_Interface.cpp Thu Nov 30 04:54:59 2006
@@ -2383,37 +2383,6 @@
     }
 }
 
-
-const char *vm_get_property_value(const char *property_name)
-{
-    assert(property_name);
-    PropertiesHandle props = (PropertiesHandle)VM_Global_State::loader_env->properties;
-    const char *result = properties_get_string_property(props, property_name);
-    if (result == NULL)
-        result = "";
-    return result;
-}
-
-Boolean vm_get_property_value_boolean(const char *property_name, Boolean default_value)
-{
-    assert(property_name);
-    PropertiesHandle props = (PropertiesHandle)VM_Global_State::loader_env->properties;
-    const char *value = properties_get_string_property(props, property_name);
-
-    // fall back to provided default if the property is not set
-    if (NULL == value || '\0' == value[0]) return default_value;
-
-    // check the common negative strings
-    if (0 == strcmp("no", value)
-        || 0 == strcmp("off", value)
-        || 0 == strcmp("false", value)
-        || 0 == strcmp("0", value)) return FALSE;
-
-    // and treat all other values as positive
-    return TRUE;
-}
-
-
 int vm_max_fast_instanceof_depth()
 {
     return MAX_FAST_INSTOF_DEPTH;
@@ -2627,41 +2596,161 @@
     return CC_Vm;
 } //vm_managed_calling_convention
 
+void set_property(const char* key, const char* value, PropertyTable table_number) 
+{
+    assert(key);
+    switch(table_number) {
+    case JAVA_PROPERTIES: 
+        VM_Global_State::loader_env->JavaProperties()->set(key, value);
+    	break;
+    case VM_PROPERTIES: 
+        VM_Global_State::loader_env->VmProperties()->set(key, value);
+        break;
+    default:
+        ASSERT(0, "Unknown property table: " << table_number);
+    }
+}
 
+char* get_property(const char* key, PropertyTable table_number)
+{
+    assert(key);
+    char* value;
+    switch(table_number) {
+    case JAVA_PROPERTIES: 
+        value = VM_Global_State::loader_env->JavaProperties()->get(key);
+        break;
+    case VM_PROPERTIES: 
+        value = VM_Global_State::loader_env->VmProperties()->get(key);
+        break;
+    default:
+        value = NULL;
+        ASSERT(0, "Unknown property table: " << table_number);
+    }
+    return value;
+}
 
-void vm_properties_set_value(const char* name, const char* value) 
+void destroy_property_value(char* value)
 {
-    PropertiesHandle ph = (PropertiesHandle)VM_Global_State::loader_env->properties;
-    properties_set_string_property(ph, name, value);
+    if (value)
+    {
+        //FIXME which properties?
+        VM_Global_State::loader_env->JavaProperties()->destroy(value);
+    }
 }
 
-// Create iterator for system properties.
-// All iterators created with this method call 
-// must be destroyed with vm_properties_iterator_destroy 
-PropertiesIteratorHandle vm_properties_iterator_create() {
-    PropertiesHandle ph = (PropertiesHandle)VM_Global_State::loader_env->properties;
-    return properties_iterator_create(ph);
+int is_property_set(const char* key, PropertyTable table_number)
+{
+    int value;
+    assert(key);
+    switch(table_number) {
+    case JAVA_PROPERTIES: 
+        value = VM_Global_State::loader_env->JavaProperties()->is_set(key) ? 1 : 0;
+        break;
+    case VM_PROPERTIES: 
+        value = VM_Global_State::loader_env->VmProperties()->is_set(key) ? 1 : 0;
+        break;
+    default:
+        value = -1;
+        ASSERT(0, "Unknown property table: " << table_number);
+    }
+    return value;
 }
 
-// Destroy iterator created by vm_properties_iterator_create
-void vm_properties_iterator_destroy(PropertiesIteratorHandle props_iter) {
-    PropertiesHandle ph = (PropertiesHandle)VM_Global_State::loader_env->properties;
-    properties_iterator_destroy(ph, props_iter);
+void unset_property(const char* key, PropertyTable table_number)
+{
+    assert(key);
+    switch(table_number) {
+    case JAVA_PROPERTIES: 
+        VM_Global_State::loader_env->JavaProperties()->unset(key);
+        break;
+    case VM_PROPERTIES: 
+        VM_Global_State::loader_env->VmProperties()->unset(key);
+        break;
+    default:
+        ASSERT(0, "Unknown property table: " << table_number);
+    }
 }
 
-// Advance iterator to a next property.
-// Return false if no more properties left to iterate
-Boolean vm_properties_iterator_advance(PropertiesIteratorHandle props_iter) {
-    return properties_iterator_advance(props_iter);
+char** get_properties_keys(PropertyTable table_number)
+{
+    char** value;
+    switch(table_number) {
+    case JAVA_PROPERTIES: 
+        value = VM_Global_State::loader_env->JavaProperties()->get_keys();
+        break;
+    case VM_PROPERTIES: 
+        value = VM_Global_State::loader_env->VmProperties()->get_keys();
+        break;
+    default:
+        value = NULL;
+        ASSERT(0, "Unknown property table: " << table_number);
+    }
+    return value;
 }
 
-// Return a name of the current property
-const char* vm_properties_get_name(PropertiesIteratorHandle props_iter) {
-    return properties_get_name(props_iter);
+char** get_properties_keys_staring_with(const char* prefix, PropertyTable table_number)
+{
+    assert(prefix);
+    char** value;
+    switch(table_number) {
+    case JAVA_PROPERTIES: 
+        value = VM_Global_State::loader_env->JavaProperties()->get_keys_staring_with(prefix);
+        break;
+    case VM_PROPERTIES: 
+        value = VM_Global_State::loader_env->VmProperties()->get_keys_staring_with(prefix);
+        break;
+    default:
+        value = NULL;
+        ASSERT(0, "Unknown property table: " << table_number);
+    }
+    return value;
+}
 
+void destroy_properties_keys(char** keys)
+{
+    if (keys)
+    {
+        //FIXME which properties?
+        VM_Global_State::loader_env->JavaProperties()->destroy(keys);
+    }
+}
+
+int get_int_property(const char *property_name, int default_value, PropertyTable table_number)
+{
+    assert(property_name);
+    char *value = get_property(property_name, table_number);
+    int return_value = default_value;
+    if (NULL != value)
+    {
+        return_value = atoi(value);
+        destroy_property_value(value);
+    }
+    return return_value;
 }
 
-// Return a value of the current property
-const char* vm_properties_get_string_value(PropertiesIteratorHandle props_iter) {
-    return properties_get_string_value(props_iter);
+Boolean get_boolean_property(const char *property_name, Boolean default_value, PropertyTable table_number)
+{
+    assert(property_name);
+    char *value = get_property(property_name, table_number);
+    if (NULL == value)
+    {
+        return default_value;
+    }
+    Boolean return_value = default_value;
+    if (0 == strcmp("no", value)
+        || 0 == strcmp("off", value)
+        || 0 == strcmp("false", value)
+        || 0 == strcmp("0", value))
+    {
+        return_value = FALSE;
+    }
+    else if (0 == strcmp("yes", value)
+             || 0 == strcmp("on", value)
+             || 0 == strcmp("true", value)
+             || 0 == strcmp("1", value))
+    {
+        return_value = TRUE;
+    }
+    destroy_property_value(value);
+    return return_value;
 }

Modified: harmony/enhanced/drlvm/trunk/vm/vmcore/src/class_support/Environment.cpp
URL: http://svn.apache.org/viewvc/harmony/enhanced/drlvm/trunk/vm/vmcore/src/class_support/Environment.cpp?view=diff&rev=480913&r1=480912&r2=480913
==============================================================================
--- harmony/enhanced/drlvm/trunk/vm/vmcore/src/class_support/Environment.cpp (original)
+++ harmony/enhanced/drlvm/trunk/vm/vmcore/src/class_support/Environment.cpp Thu Nov 30 04:54:59 2006
@@ -39,7 +39,6 @@
 mem_pool(pool),
 bootstrap_class_loader(NULL),
 system_class_loader(NULL),
-properties(NULL),
 TI(NULL),
 nsoTable(NULL),
 portLib(NULL),
@@ -50,7 +49,8 @@
 ready_for_exceptions(false)
 {
     // TODO: Use proper MM.
-    properties = new Properties();
+    m_java_properties = new Properties();
+    m_vm_properties = new Properties();
     bootstrap_class_loader = new BootstrapClassLoader(this); 
 
     hythread_lib_create(&hythread_lib);
@@ -203,7 +203,7 @@
 
 Global_Env::~Global_Env()
 {
-    if (vm_get_boolean_property_value_with_default("vm.noCleanupOnExit")) {
+    if (get_boolean_property("vm.noCleanupOnExit", false, VM_PROPERTIES)) {
         return;
     }
 
@@ -223,8 +223,10 @@
     delete vm_methods;
     vm_methods = NULL;
 
-    delete properties;
-    properties = NULL;
+    delete m_java_properties;
+    m_java_properties = NULL;
+    delete m_vm_properties;
+    m_vm_properties = NULL;
 
     nso_clear_lookup_table(nsoTable);
     nsoTable = NULL;

Modified: harmony/enhanced/drlvm/trunk/vm/vmcore/src/class_support/Verifier_stub.cpp
URL: http://svn.apache.org/viewvc/harmony/enhanced/drlvm/trunk/vm/vmcore/src/class_support/Verifier_stub.cpp?view=diff&rev=480913&r1=480912&r2=480913
==============================================================================
--- harmony/enhanced/drlvm/trunk/vm/vmcore/src/class_support/Verifier_stub.cpp (original)
+++ harmony/enhanced/drlvm/trunk/vm/vmcore/src/class_support/Verifier_stub.cpp Thu Nov 30 04:54:59 2006
@@ -46,7 +46,7 @@
      */
     Boolean is_forced = env->verify_all;
     Boolean is_bootstrap = m_class_loader->IsBootstrap();
-    Boolean is_enabled = vm_get_boolean_property_value_with_default("vm.use_verifier");
+    Boolean is_enabled = get_boolean_property("vm.use_verifier", TRUE, VM_PROPERTIES);
 
     /**
      * Verify class

Modified: harmony/enhanced/drlvm/trunk/vm/vmcore/src/class_support/classloader.cpp
URL: http://svn.apache.org/viewvc/harmony/enhanced/drlvm/trunk/vm/vmcore/src/class_support/classloader.cpp?view=diff&rev=480913&r1=480912&r2=480913
==============================================================================
--- harmony/enhanced/drlvm/trunk/vm/vmcore/src/class_support/classloader.cpp (original)
+++ harmony/enhanced/drlvm/trunk/vm/vmcore/src/class_support/classloader.cpp Thu Nov 30 04:54:59 2006
@@ -1139,21 +1139,10 @@
 }
 
 inline void
-BootstrapClassLoader::SetClasspathFromProperty(const char* prop_string,
+BootstrapClassLoader::SetClasspathFromString(char* bcp,
                                                apr_pool_t* tmp_pool)
 {
-    // get property value
-    const char *bcp_value = properties_get_string_property(
-        reinterpret_cast<PropertiesHandle>(m_env->properties), prop_string);
-    assert(bcp_value);
-
-    size_t len = strlen(bcp_value) + 1;
-    char *bcp = (char *)STD_ALLOCA( len );
-    memcpy(bcp, bcp_value, len);
-#ifdef PLATFORM_NT
-    //on windows, we change the path to lower case
-    strlwr(bcp);
-#endif // PLATFORM_NT
+    assert(bcp);
 
     // set bootclasspath elements
     const char separator[2] = {PORT_PATH_SEPARATOR, 0};
@@ -1163,6 +1152,7 @@
         SetBCPElement(path_name, tmp_pool);
         path_name = strtok(NULL, separator);
     }
+
     return;
 } // BootstrapClassLoader::SetClasspathFromProperty
 
@@ -1233,6 +1223,7 @@
     size_t len = strlen(jar_classpath) + 1;
     char* classpath = (char*)STD_ALLOCA(len);
     memcpy(classpath, jar_classpath, len);
+    STD_FREE((void*)jar_classpath); //FIXME inconsistent MM
 #ifdef PLATFORM_NT
     //on windows, we change the path to lower case
     strlwr(classpath);
@@ -1322,19 +1313,11 @@
     ClassLoader::Initialize();
 
     // get list of natives libraries
-    const char *lib_list = 
-        properties_get_string_property(
-            reinterpret_cast<PropertiesHandle>(m_env->properties),
-            "vm.other_natives_dlls" );
+    char *lib_list = m_env->VmProperties()->get("vm.other_natives_dlls");
              
-    size_t len = strlen( lib_list ) + 1;
-
-    char *libraries = (char*)STD_ALLOCA( len );
-    memcpy( libraries, lib_list, len );
-
     // separate natives libraries
     const char separator[2] = {PORT_PATH_SEPARATOR, 0};
-    char *lib_name = strtok( libraries, separator );
+    char *lib_name = strtok( lib_list, separator );
 
     while( lib_name != NULL )
     {
@@ -1344,6 +1327,7 @@
         // find next library
         lib_name = strtok( NULL, separator );
     }
+    m_env->VmProperties()->destroy(lib_list);
 
     /*
      *  at this point, LUNI is loaded, so we can use the boot classpath
@@ -1359,18 +1343,16 @@
      * the kernel
      */
      
-    PropertiesHandle hProps = reinterpret_cast<PropertiesHandle>(m_env->properties);
-     
     /* strdup so that it's freeable w/o extra logic */
-
-    const char *temp = properties_get_string_property(hProps, XBOOTCLASSPATH);    
+    char *temp = m_env->VmProperties()->get(XBOOTCLASSPATH);
     char *bcp_value = (temp ? strdup(temp) : NULL);
-    
+    m_env->VmProperties()->destroy(temp);
+        
     if (bcp_value == NULL) { 
         
         /* not overridden, so lets build, adding the kernel to what luni made for us */
         
-        const char *kernel_dir_path = properties_get_string_property(hProps, O_A_H_VM_VMDIR);
+        char *kernel_dir_path = m_env->JavaProperties()->get(O_A_H_VM_VMDIR);
 
         char *kernel_path = (char *) malloc(strlen(kernel_dir_path == NULL ? "" : kernel_dir_path) 
                                         + strlen(PORT_FILE_SEPARATOR_STR) 
@@ -1379,8 +1361,9 @@
         strcpy(kernel_path, kernel_dir_path);
         strcat(kernel_path, PORT_FILE_SEPARATOR_STR);
         strcat(kernel_path, KERNEL_JAR);
-        
-        const char *luni_path = properties_get_string_property(hProps,O_A_H_BOOT_CLASS_PATH);
+        m_env->JavaProperties()->destroy(kernel_dir_path);
+
+        char *luni_path = m_env->JavaProperties()->get(O_A_H_BOOT_CLASS_PATH);
         
         char *vmboot = (char *) malloc(strlen(luni_path == NULL ? "" : luni_path) 
                                 + strlen(kernel_path) + strlen(PORT_PATH_SEPARATOR_STR) + 1);
@@ -1388,6 +1371,7 @@
         strcpy(vmboot, kernel_path);
         strcat(vmboot, PORT_PATH_SEPARATOR_STR);
         strcat(vmboot, luni_path);
+        m_env->JavaProperties()->destroy(luni_path);
 
         free(kernel_path);
         bcp_value = vmboot;
@@ -1397,8 +1381,8 @@
      *  now if there a pre or post bootclasspath, add those
      */
      
-    const char *prepend = properties_get_string_property(hProps, XBOOTCLASSPATH_P);
-    const char *append = properties_get_string_property(hProps, XBOOTCLASSPATH_A);
+    char *prepend = m_env->VmProperties()->get(XBOOTCLASSPATH_P);
+    char *append = m_env->VmProperties()->get(XBOOTCLASSPATH_A);
     
     if (prepend || append) {
         
@@ -1423,16 +1407,16 @@
        free(bcp_value);
        bcp_value = temp;
     }
-    
+    m_env->VmProperties()->destroy(prepend);
+    m_env->VmProperties()->destroy(append);
     /*
      *  set VM_BOOT_CLASS_PATH and SUN_BOOT_CLASS_PATH for any code 
      *  that needs it
      */
      
-    add_pair_to_properties(*m_env->properties, VM_BOOT_CLASS_PATH, bcp_value);
-    add_pair_to_properties(*m_env->properties, SUN_BOOT_CLASS_PATH, bcp_value);
-    
-    free(bcp_value);
+    m_env->VmProperties()->set(VM_BOOT_CLASS_PATH, bcp_value);
+    m_env->JavaProperties()->set(VM_BOOT_CLASS_PATH, bcp_value);
+    m_env->JavaProperties()->set(SUN_BOOT_CLASS_PATH, bcp_value);
     
     // create temp pool for apr functions
     apr_pool_t *tmp_pool;
@@ -1440,14 +1424,15 @@
 
     // create a bootclasspath collection
 
-    SetClasspathFromProperty(VM_BOOT_CLASS_PATH, tmp_pool);
+    SetClasspathFromString(bcp_value, tmp_pool);
+    free(bcp_value);
         
     // check if vm.bootclasspath.appendclasspath property is set to true
-    Boolean is_enabled =
-        vm_get_boolean_property_value_with_default("vm.bootclasspath.appendclasspath");
-    if( TRUE == is_enabled ) {
+    if( TRUE == get_boolean_property("vm.bootclasspath.appendclasspath", FALSE, VM_PROPERTIES) ) {
         // append classpath to bootclasspath
-        SetClasspathFromProperty("java.class.path", tmp_pool);
+        char * cp = m_env->JavaProperties()->get("java.class.path");
+        SetClasspathFromString(cp, tmp_pool);
+        m_env->JavaProperties()->destroy(cp);
     }
 
     // get a classpath from archive files manifest and

Modified: harmony/enhanced/drlvm/trunk/vm/vmcore/src/class_support/manifest.cpp
URL: http://svn.apache.org/viewvc/harmony/enhanced/drlvm/trunk/vm/vmcore/src/class_support/manifest.cpp?view=diff&rev=480913&r1=480912&r2=480913
==============================================================================
--- harmony/enhanced/drlvm/trunk/vm/vmcore/src/class_support/manifest.cpp (original)
+++ harmony/enhanced/drlvm/trunk/vm/vmcore/src/class_support/manifest.cpp Thu Nov 30 04:54:59 2006
@@ -162,7 +162,7 @@
 
         // set property
         if( IsMainProperty( propName ) ) {
-            m_main.add( strdup(propName), new Prop_String(strdup(propValue)) );
+            m_main.set((const char*)propName, (const char*)propValue);
         }
     } while( pointer - manifest <  manifestSize );
 
@@ -174,9 +174,7 @@
 
 Manifest::~Manifest()
 {
-    m_main.clear();
 }
-
 
 bool Manifest::IsMainProperty( const char* prop )
 {