if each thread has its Compiler object, concurrent compilation by several threads could occur without problem... each thread will still have its own pool of compiler objects and will still allow re-entrant code. staging: AC_INIT echo -n -> printf "%s" removed deprecated -C options and properties like is -C first useful or -C intr-count could be used? builderfactory property? split --enable-sablejit-testing (SABLEJIT_TESTING) in 2. One to be able to specify sablevm.jit.include/exclude etc. but not executing "extra" Java code. And one that constructs Java strings for the test cases. --enable-sablejit-control (include/exclude) --enable-sablejit-testing (for test cases) this also avoids "side effect". Ex: some control to find bug without executing extra bytecode. - Compute regs stats. - cleanup old files/scripts makedist.sh, VERSION etc. - with -C int, still check get_fault_pc... Done: - Done: Implement binary search for branch patching in inlined to switch conversion (in file jit_inlined.c). - Done: bring SableJIT/sparc changes into my SableJIT branch, unifying the source code trees. - Done: merge sparc changes. *** Current implementation is okay, implementation describe above does not work as env->native_addr is always check. It is determine later if in bounds with compiled code *** - TODO: check if env->native_addr is reset to NULL if found. actually, reset to NULL always. If non-null means exception happened in compiled code. If cannot find it, fatal error... - Simplify build process by removing environment var settings or making it easier. - add checks in computePCImm for addiI immediate range to avoid patching overflow. For ppc and sparc, and probably x86. - Reorganize code trees: mv sablevm/src/libsablevm/sablejit to sablejit/src/runtime configure will create the symlink in sablevm/src/libsablevm before building SableVM. - Study the possibitiy of removing exceptionHandlerOffsets array. Probably not absolutely needed. ---> Should not be removed. Otherwise, Compiler would have to ask the VM later to have that information. - Update SableJIT copyright notice to reflect new style/grammar fix of the SableVM ones. - Note: on ppc, bctrl is used to call function pointer, so compiled_code will probably be in that register (ctr) on method entry and could be moved to a saved register if ctr is not preserved. On OS X, it may be in register 12. This could speed up jump table as we would not need to compute the pc. also, it would not require saving it on the _svmt_stack_frame. To study. - Replace isCodeWords etc. with a Configuration.IS_CODE_WORDS constant. - Move exception table after epilogue. Done: - In OnePassGeneration, remote PPC cast for trap exception, should be in type Architecture with probably a { throw new Not{Supported,Implemented}Exception } as a default implementation, since not available on all archs.