Jato 0.3 released
[Posted January 4, 2012 by corbet]
From: |
| Pekka Enberg <penberg-AT-kernel.org> |
To: |
| jatovm-AT-googlegroups.com |
Subject: |
| [ANNOUNCE] Jato 0.3 |
Date: |
| Wed, 4 Jan 2012 19:37:54 +0200 (EET) |
Message-ID: |
| <alpine.LFD.2.02.1201041934000.5507@tux.localdomain> |
Cc: |
| classpath-AT-gnu.org |
Archive‑link: | |
Article |
The latest release Jato 0.3 is now available.
The release tarball can be found here:
http://www.kernel.org/pub/software/java/jato/jato-0.3.tar...
The Git repository can be found here:
https://github.com/penberg/jato
About Jato
==========
Jato is an open source, JIT-only virtual machine for Java that aims to support
the latest JVM specification. It can currently run many Java applications such
as JRuby, Clojure, and Eclipse on 32-bit x86 Linux machines. Ports to x86-64,
ARM, and PPC32 CPUs and Darwin OS are currently under development.
Release Notes
=============
Applications
------------
* JRuby and Jython are now supported.
- GNU Classpath CVS HEAD is required.
[ See below for details how to download and install it. ]
Performance
-----------
* VM startup speed has improved by 25%.
* DaCapo benchmark results have improved across the board.
- See the following URL for DaCapo results:
http://i.imgur.com/eorgM.png
JIT
---
* The JIT compiler is now able to optimize code before execution.
- Transformation of the IR to SSA form and out of SSA form.
[ SSA form is not enabled by default. Use '-Xssa' command line option to
enable it. ]
- Dead code elimination optimization (requires SSA).
- Array bounds check elimination (requires SSA).
- Inline caching optimization is used on i386 architecture.
* The JIT compiler has limited support for ARM and PPC32 architectures.
- Don't expect to run real applications on them, though.
* The JIT compiler support on the x86-64 architecture has improved
significantly.
- Not as mature as i386 architecture.
VM
--
* The VM has a classfile verifier.
- It is able to detect classfile corruption and many semantic problems in
bytecode.
* The VM supports most of the JNI API.
GNU Classpath
=============
Please use GNU Classpath CVS HEAD with Jato 0.3 for best performance and
compatibility.
You can use the following Git mirror to fetch the sources:
git://icedtea.classpath.org/mirror/git/classpath/classpath
See the README file in Jato's source tree for details on how to install GNU
Classpath on your machine.
Support
=======
If you have questions, comments, or suggestions, feel free to drop by at #jato
on irc.freenode.net or send an email to our mailing list at:
http://groups.google.com/group/jatovm?hl=en
You can also report problems on Github:
https://github.com/penberg/jato/issues
For more information, please check out the Jato home page:
http://www.jatovm.org/
---
Changes from v0.2 to v0.3
=========================
The following changes since commit 08c53b4aab143072eb77c505ad90a3dcdf501b9c:
Jato 0.2 (2011-05-24 23:06:27 +0300)
are available in the git repository at:
git@github.com:penberg/jato.git master
Ana Farcasi (51):
Fix differently spelled name
jit: Fix convert_tableswitch and convert_lookupswitch
test/unit: Add test for switch-bc
jit: Make sure entry basic block is accounted in compute_dfns()
x86: Added INSN_PHI
jit: Add SSA optimization infrastructure
jit: Fix bugs in ssa.c
jit: Added renaming of variables for exception handler basic blocks
jit: Fix bug for insn_use_def in ssa.c
jit: Fix bug in ssa.c
jit: Fix bug in insert_empty_bb
jit: Initialize vregs before inserting phi insns
jit: Fix bb successors list for tableswitch
jit: Fix init of J_DOUBLE and J_FLOAT in SSA
jit: Cumulate fixed virtual regesiters in SSA
jit: Add support for switch instructions in SSA
jit: All virtual regs are defined before they are used
jit: Fix bug in resolve data flow
x86: Replace if statement with switch in ssa functions
jit: Fix exception handler basic block renaming
jit: Delete extra empty line in ssa.c
jit: Implement insn_add_ons with hash_map
test/unit: Add new test for tableswitch
jit: Add dead code elimination optimization
x86: Fix push_memlocal and pop_memlocal print
x86: Fix bug in insert_copy_slot_64_insns
jit: Fix bytecode offset of new basic blocks in ssa
jit: Optimize resolve_data_flow
jit: Replace minimal SSA with pruned SSA
jit: Fix bug in control flow graph
jit: Add copy folding for SSA form
test/unit: Add test in cfg-analyzer-test.c
jit: Delete useless computations in ssa
jit: Remove useless flags
jit: Free worklist
jit: Reposition ssa main functions
jit: Reduce number of new basic blocks in ssa
jit: Improve traversal of a bitset
test/unit: Add test for bitset_ffs_from
Makefile: Link tcmalloc if present in the system
jit: Add imm_copy_propagation
jit: Replace doubly-linked lists with simply-linked lists in ssa
jit: Fix bb successors list for lookupswitch
jit: Resolve warning in SSA
test/jit: Fix bug in switch-bc-test
test/jit: Add test for lookupswitch
jit: Add abc-removal
jit: Fix bug in insert_list
jit: Compute natural loops
jit: Enable SSA only when abc elimination needed
Documentation: Add SSA documentation
Ankit Laddha (38):
arm: Add stub methods so 'make check' links
arm: Fix unit tests on ARM
arm: Add stubs required for IC and SSA projects
arm: Framework so arm porting can start
arm: conversion of EXPR_VALUE to LIR
arm: Stubs required for SSA project
arm: Convert EXPR_LOCAL to LIR
arm: Encoding of reg_imm_insn and reg_memlocal_insn
arm: Framework so that bytecode-test run on arm
arm: fix the broken unit test
arm: Add stubs required for SSA project
arm: Fix encoding of reg_memlocal_insn
arm: Convert STMT_RETURN and VOID_RETURN to LIR
arm: Fix the flow of process of encoding insns
arm: Encode INSN_MOV_REG_REG
arm: Encode INSN_UNCOND_BRANCH
arm: Change memory read function
arm: Emit the prolog of a function
arm: Emit epilog of a function
arm: Implement functions for liveness analysis
arm: Emission of trampoline started
arm: Funtion implementation for register allocation
arm: Configured IC calls for ARM
arm: set the text alignment in the execution pages
arm: Full trampoline support emitted
arm: Fix bug in trampoline emission
arm: Initial support for bytecode tests
arm: Some more bytecode-tests running successfully
arm: change one LIR instruction
arm: LIR conversion for STMT_STORE
arm: Emit INSN_STORE_MEMLOCAL_REG
arm: fixup instruction mnemonics
arm: Support for negative integers
arm: Add support for addition of integers
arm: Add more rules to insn selector
arm: Support for subtraction
arm: Pass more bytecode tests
test, integration: reordering the test cases
Balagopal (10):
jit: Support for multiple entry points to methods.
x86: Inline cache with clean and monomorphic states for INVOKEVIRTUAL.
x86: Inline cache cleanups
x86: Fix compile errors on x86_64
x86: Megamorphic inline cache on x86_32
test/functional: Modify invokevirtual test for better coverage.
x86: Add dummy ic_vcall_stub for x86_64
Makefile: Framework to generate asm-offsets
test: Added microbenchmark for measuring Inline cache performance.
jit: Added -Xnoic to disable inline caching
Joonas Reynders (4):
vm: Convert classloader trace level to use pthread API
vm, gc: Convert gc safepoint flag to use pthread API
Converts trace_buffer from __thread to pthread API
Convert signal register_state variable from __thread to pthread API
Nikhil Sarda (5):
reflection: Fix parameter annotation test
jit: Make check was failing with a SIGSEGV.
test/integration: Added some more bytecode tests.
test/integration: Added bytecode tests for istore, lstore, fstore and dstore.
vm, gc: Improved error handling.
Pekka Enberg (219):
vm: Fix VM launcher help text
test/functional: Fix broken IsInstanceOf JNI test case
test/functional: Disable parameter annotation tests
Makefile: Fix 'tags' target to include sys directory
arm: Fix 'make check' error caused by missing target
test/integration: Fix printf format string error
vm: Fix current_exec_env_key definition
lib: Add arena memory allocator
jit: Use arena allocator for struct var_info and friends
x86: Fix do_native_call() miscompilation with '-O3'
Makefile: Use GCC '-O3' optimization level
Makefile: Use -fno-tree-vectorize on x86-64
jit: Optimize interval_expire_ranges_before() and interval_range_at()
vm: Optimize vm_class_is_assignable_from()
vm: Make subtype checking faster
test, unit: Fix compilation error
Revert "vm: Make subtype checking faster"
Makefile: Revert back to -Os for 32-bit
vm: Add '-XX:+PrintCompilation' command line option
test/functional: Rename FieldTest to FieldAccessorsTest
runtime: Fix VMClass accessor method compatibility issues
test/functional: Enable more test cases in FieldAccessorsTest
runtime: Use java_lang_reflect_VMField prefix for native functions
vm, runtime: Move VMField functions to runtime/java_lang_reflect_VMField.c
reflection: Fix VMField.get() from superclasses
jit: Fix uninitialized variable use in analyze_control_flow()
vm: Merge 'enum thread_state' to 'enum vm_thread_state'
jit: Cleanup jit/compilation-unit.c
vm: Add interpreter for OPC_NOP and OPC_RETURN
x86: Fix printf format on 64-bit
x86-64: Kill broken OP_CMP rule from insn selector
x86-64: Fix EXPR_FLOAT_CLASS_FIELD args on stack
x86: Fix asm-offsets.c
x86-64: Fix STMT_STORE args on stack
x86-64: Fix STMT_ARRAY_STORE_CHECK args on stack
x86-64: Enable ArrayExceptionsTest
Revert "x86-64: Enable ArrayExceptionsTest"
x86-64: Fix IntegerAritmethicTest
x86-64: Enable PutfieldTest
test/functional: Don't use static fields in FloatArithmeticTest
test/functional: Don't use static fields in DoubleArithmeticTest
x86-64: Kill unused shift_reg_local function
x86-64: Fix floating point static field accesses
x86-64: Enable more test cases
Makefile: Fix unit tests on ARM
test/functional: Run EntryTest wíth SSA enabled
arm: Fix includes in arch/arm/constant_pool.c
arm: Extract insert_to_literal_pool() function
arm: Cleanup arch/arm/constant_pool.c a bit
arm: Cleanup arch/arm/encode.c
ppc: Fix gcc-arch.sh and add missing Makefile
ppc: Fix compile error in disassemble.c
ppc: Add some architecture specific headers
Fix .gitignore for asm-offsets.h
ppc, linux: Add stubs for backtrace.c
ppc: Kill unused backtrace.c
ppc: Add definition for NR_FIXED_REGISTERS
ppc: Add more headers and stubs
arm: Kill unnecessary 'extern' modifier
x86, arm, ppc: Use generic GCC builtins for cmpxchg
arm, jit: Move constant-pool.c to generic code
x86: Fix alignment link warning in tests
test/integration: Fix broken OPC_IFNONNULL test case
test/integration: Add more test cases to bytecode-test
test/integration: Add i2b and i2c to bytecode-test
ppc: Add arch/init.h
ppc: Makefile cleanup
ppc: Fix config to define CONFIG_32_BIT
ppc: Fix register definitions
ppc: Add arch/text.h
ppc: Implement reg_name() function
ppc: Fix up struct jit_stack_frame
ppc: Fix signal support compilation errors
ppc: Add arch/itable.h
vm: Add missing include to method.c
ppc: Fix struct native_stack_frame
ppc: Define ARCH_NAME
ppc: Fix unit test Makefile
ppc: Add more stubs to make things compile
ppc, linux: Add signal stubs
ppc: Implement arch-specific cmpxchg.h
Makefile: Let arch/*/include/arch override arch/include
x86-64: Fix return value tracing
ppc: Implement trampoline support
ppc: Add empty rules for instruction selector
ppc: Cleanup emit-code.c
lib, ppc: Clean up code emission to buffer
libharness: Improve assertion messages
arm: Fix link error caused by cmpxchg.h
test, integration: Disable machine code tracing
ppc: Encoding for the 'lis' instruction
ppc: Encoding for the 'ori' instruction
ppc: Encoding for 'blr' instruction
ppc: Implement insn() function
ppc: Implement use-def for instructions
ppc: Implement instruction helper functions
ppc: Implement inline caching stubs properly
ppc: Fix some emitter functions
x86: User arch-specific cmpxchg
jit: Shrink struct var_info on 64-bit
x86: Reuse space in 'struct insn' for mach_offset and lir_offset
lib: Optimize arena_block_new()
x86: Fix switch statement formatting in instruction.c
jit, ssa: Reduce imm_copy_propagation() nesting
jit: Reduce the size of 'struct insn'
ppc: Fix build breakage
jit: Lindent jit/dce.c
x86: Simplify insn_vreg_{use,def}()
arm: Fix build breakage
test, integration: Fix Makefile dependencies
x86, peephole: Eliminate redundant register stores
x86-32: Enable SSA by default
lib: Optimize append_buffer()
lib: Use bitset_ffs_from() for bitset_ffs()
lib: Optimize bitset_ffs_from()
Documentation: Add initial version of internals manual
x86: Optimize insn_is_call()
x86: Make some insn helper functions inline
lib: Optimize bitset_copy_to()
x86-64: Disable peephole optimizations
Makefile: Enable -O3 GCC optimization level again
Add Travis CI control file
jit: Fix x86-ism in jit/abc-removal.c
jit: Fix abc-removal.c x86-isms for good
ppc: Save and restore LR in trampoline
ppc: STMT_RETURN(reg) instruction selection
cafebabe, annotations: Don't call calloc() with zero 'nmemb'
test, integration: Fix bytecode test ordering
Documentation: Add explanation of resolution blocks
Update TODO
Documentation: Update section on intermediate representations
Documentation: Fix internals.txt formatting
Documentation: Explain what BC2IR algorithm means
x86, ic: Fix crash in ic_supports_method()
vm, preload: Simplify preload code
vm, preload: Use macro magic to reduce code duplication
vm: Fix "-Xtrace:jit" crash on missing methods
x86: Fix invokevirtual and invokeinterface for missing methods
cafebabe: Add missing access and property flags
x86: Fix invokevirtual and invokeinterface some more
vm: Use vm_zalloc() for allocatin struct vm_class
vm: Fix alloc_exec_env() to initialize all fields
vm: Make sure ->monitor_record is initialized to NULL
vm: Fix do_gc_alloc() to zero allocated objects
vm, gc: Fix newgc signal handlers
vm, gc: Fix newgc signal handling
vm, gc: Kill NOT_IMPLEMENTED
test, functional: Execute EntryTest with -Xnewgc
vm, gc: Add assertion to enter_safepoint()
vm, gc: Add assertion to do_exit_safepoint()
test, functional: Improve GC torture test
jit: Add assertion to jit_text_reserve()
vm, gc: Kill dead signal setup code
x86-64: Fix instruction encoding rex.w prefixes
x86-64: Fix R12 instruction encoding issues
x86-64: Fix floating point instruction selection issues
x86-64: Partial revert of commit 8ae25fe2f513
x86-64: Fix INSN_SUB_REG_REG 'rex.w' encoding
vm: Remove duplicate code in method preload
vm, annotations: Fix struct vm_allocation allocation issue
vm: Implement fast subtype checking
jit: Kill "compile lock" locking primitive
Revert "jit: Kill "compile lock" locking primitive"
jit: Kill compile lock from 'struct compilation_unit'
jit: Kill COMPILATION_STATE_ERROR
Document build dependencies for Fedora
x86-64: Convert STMT_RETURN(freg) to use MOVSS and MOVSD
x86-64: Convert return value tracing to use MOVSS and MOVSD
x86-64: Fix EXPR_FLOAT_LOCAL instruction selection
x86-64: Enable passing functional tests
x86-64: Convert more insn selector rules to use MOVSS and MOVSD
x86-64: Use MOVSS and MOVSD in setup_caller_saved_regs()
x86-64: Drop XMM support from emit_mov_reg_reg()
x86-64: Use insn_encode() for INSN_MOV_REG_REG
jit: Use snprintf() in class_name_to_array_name()
vm: Add assertions to vm_properties_set_property()
x86-64: Fail if type is not supported by retur value tracing
x86-64: Fix STMT_STORE instruction selector rule
x86: Remove unused variables from instruction selector
jit: Add missing stdio.h include
Revert "Makefile: Enable -O3 GCC optimization level again"
jit: Fix emulate_fcmpl() and emulate_fcmpg()
runtime: Add stub for VMThreadMXBeanImpl.getThreadInfoForId()
vm: Make vm_class_resolve_and_type() failures less noisy
Bump up required GNU Classpath version in README
Add documentation on how to profile Jato heap
jit: Reduce array bytecode detection memory footprint
jit: Introduce and use CU_FLAG_REGALLOC_DONE
lib: Simplify 'struct arena'
vm, verifier: Dead code removal
lib: Remove duplication from arena_alloc()
jit: Introduce and use arena_free()
lib: Fix 'struct arena_block' linked list
x86-64: Fix J_REFERENCE code generation
runtime: Move java/lang/VMString code under runtime
lib: Fix string.h include guards
vm: Remove unused get_classpath() function
lib: Introduce and string_from_cstr() API
lib, vm: Fix string hash calculation
lib: Improve hash_map_get() performance
vm: Require slash format class name in classloader_load()
lib: Introduce byte swap helper functions
lib: Implement new ZIP handling for bootstrap classloader
vm: Replace libzip with faster implementation
Revert "x86-32: Enable SSA by default"
jit: Fix resolution block memory leak
jit: Fix memory leaks in jit/subroutine.c
vm: Unload classes on VM exit
lib: Fix memory leaks in zip.c
jit: Avoid allocation in interval_add_range()
vm, gc: Don't scan primitive arrays for references
vm: Fix use after free in vm_class_resolve_class()
Use -fno-omit-frame-pointer GCC optimization flag
x86: Simplify do_native_call() and do_native_call_xmm() on 32-bit
x86-32: Simplify native_call()
x86-32: Use -O3 GCC optimization level
Sync before each DaCapo benchmark
Revert "x86-32: Simplify native_call()"
Jato 0.3
Theo Dzierzbicki (11):
vm: Add simple verifier
vm: Implemented & tested the verifier state structures.
vm, verifier: Almost completely implementing the first verification pass.
vm, verifier: Allow modification of blocks by verifier CFG functions.
vm, verifier: Reintroduced the verify_* CFG analysis functions.
vm, verifier: starting CFG analysis, proper tracing
vm, verifier: fixing exception raising.
vm, verifier: added corrupted tests to check-functional
cafebabe, vm: Added support for the StackMapTable attribute.
AUTHORS: added an entry.
vm, verifier: added verifications on method overriding and access flags.
Tomek Grabiec (1):
x86: fix lir printing of pop <reg> insn
.gitignore | 2 +
.mailmap | 1 +
.travis.yml | 2 +
AUTHORS | 4 +
Documentation/heap-profiling.txt | 17 +
Documentation/internals.txt | 199 +++
Makefile | 88 ++-
README | 9 +-
TODO | 32 -
arch/arm/Makefile | 4 +
arch/arm/emit-code.c | 169 ++-
arch/arm/encode.c | 390 ++++++
arch/arm/include/arch/atomic.h | 12 +-
arch/arm/include/arch/byteorder.h | 1 +
arch/arm/include/arch/cmpxchg.h | 8 +-
arch/arm/include/arch/encode.h | 29 +
arch/arm/include/arch/instruction.h | 111 ++-
arch/arm/include/arch/memory.h | 12 +-
arch/arm/include/arch/registers.h | 44 +-
arch/arm/include/arch/text.h | 2 +-
arch/arm/include/arch/thread.h | 6 +
arch/arm/insn-selector.brg | 441 +++++++
arch/arm/instruction.c | 249 ++++-
arch/arm/registers.c | 58 +
arch/arm/stack-frame.c | 55 +-
arch/arm/stubs_to_compile.c | 119 ++
arch/mmix/include/arch/registers.h | 3 +
arch/ppc/Makefile_32 | 19 +-
arch/ppc/disassemble.c | 6 +-
arch/ppc/emit-code.c | 156 ++-
arch/ppc/encode.c | 86 ++
arch/ppc/exception.c | 2 +-
arch/ppc/include/arch/atomic.h | 43 +
arch/ppc/include/arch/byteorder.h | 1 +
arch/ppc/include/arch/cmpxchg.h | 22 +
arch/ppc/include/arch/config_32.h | 5 +-
arch/ppc/include/arch/encode.h | 152 +++
arch/ppc/include/arch/init.h | 6 +
arch/ppc/include/arch/instruction.h | 109 +-
arch/ppc/include/arch/itable.h | 9 +
arch/ppc/include/arch/memory.h | 25 +
arch/ppc/include/arch/registers.h | 127 ++-
arch/ppc/include/arch/signal.h | 10 -
arch/ppc/include/arch/stack-frame.h | 10 +-
arch/ppc/include/arch/text.h | 7 +
arch/ppc/init.c | 5 +
arch/ppc/insn-selector.brg | 252 ----
arch/ppc/insn-selector_32.brg | 650 +++++++++-
arch/ppc/instruction.c | 132 ++
arch/ppc/registers_32.c | 63 +
arch/ppc/stubs_to_compile.c | 119 ++
arch/x86/Makefile_32 | 3 +
arch/x86/Makefile_64 | 3 +
arch/x86/asm-offsets.c | 8 +
arch/x86/call.c | 66 +-
arch/x86/emit-code.c | 107 +-
arch/x86/encode.c | 122 ++-
arch/x86/ic_lowlevel_32.S | 26 +
arch/x86/ic_lowlevel_64.S | 18 +
arch/x86/include/arch/byteorder.h | 1 +
arch/x86/include/arch/inline-cache.h | 26 +
arch/x86/include/arch/instruction.h | 64 +-
arch/x86/include/arch/peephole.h | 8 +
arch/x86/include/arch/registers_32.h | 2 +-
arch/x86/inline-cache.c | 234 ++++
arch/x86/insn-selector_32.brg | 106 +-
arch/x86/insn-selector_64.brg | 591 ++++-----
arch/x86/instruction.c | 317 +++++-
arch/x86/lir-printer.c | 32 +-
arch/x86/peephole.c | 30 +
arch/x86/registers_32.c | 2 +-
cafebabe/annotations_attribute.c | 10 +-
cafebabe/error.c | 2 +
cafebabe/stack_map_table_attribute.c | 233 ++++
include/arch/peephole.h | 11 +
include/cafebabe/error.h | 1 +
include/cafebabe/method_info.h | 7 +
include/cafebabe/stack_map_table_attribute.h | 128 ++
include/jit/basic-block.h | 58 +-
include/jit/compilation-unit.h | 90 ++-
include/jit/compiler.h | 8 +
include/jit/constant-pool.h | 21 +
include/jit/emit-code.h | 7 +-
include/jit/emulate.h | 5 +
include/jit/inline-cache.h | 18 +
include/jit/instruction.h | 8 +
include/jit/ssa.h | 52 +
include/jit/use-position.h | 1 +
include/jit/vars.h | 16 +-
include/lib/arena.h | 53 +
include/lib/big-endian.h | 13 +
include/lib/bitset.h | 18 +-
include/lib/buffer.h | 39 +-
include/lib/hash-map.h | 12 +-
include/lib/little-endian.h | 13 +
include/lib/string.h | 11 +-
include/lib/swab.h | 21 +
include/lib/zip.h | 43 +
.../gnu_java_lang_management_VMThreadMXBeanImpl.h | 8 +
include/runtime/java_lang_VMString.h | 8 +
include/runtime/java_lang_reflect_VMField.h | 12 +
include/vm/boxing.h | 3 +
include/vm/bytecode-def.h | 118 +-
include/vm/bytecode.h | 8 +
include/vm/class.h | 27 +-
include/vm/classloader.h | 3 +-
include/vm/gc.h | 22 +-
include/vm/interp.h | 23 +
include/vm/method.h | 31 +-
include/vm/object.h | 3 +-
include/vm/opcodes.h | 2 +
include/vm/preload-classes.h | 71 +
include/vm/preload-methods.h | 50 +
include/vm/preload.h | 131 +--
include/vm/reflection.h | 12 -
include/vm/thread.h | 24 +-
include/vm/types.h | 9 +
include/vm/verifier.h | 284 +++++
jit/abc-removal.c | 132 ++
jit/basic-block.c | 186 +++-
jit/bytecode-to-ir.c | 17 +-
jit/cfg-analyzer.c | 17 +-
jit/compilation-unit.c | 124 ++-
jit/compiler.c | 48 +-
jit/constant-pool.c | 80 ++
jit/dce.c | 144 +++
jit/dominance.c | 2 +
jit/emit.c | 60 +-
jit/emulate.c | 39 +-
jit/inline-cache.c | 30 +
jit/interval.c | 61 +-
jit/linear-scan.c | 40 +-
jit/liveness.c | 17 +-
jit/object-bc.c | 24 +-
jit/spill-reload.c | 34 +-
jit/ssa.c | 1335 ++++++++++++++++++++
jit/subroutine.c | 5 +
jit/switch-bc.c | 6 +-
jit/text.c | 3 +
jit/trace-jit.c | 30 +-
jit/trampoline.c | 43 +-
lib/arena.c | 76 ++
lib/bitset.c | 64 +-
lib/hash-map.c | 43 +-
lib/string.c | 91 ++-
lib/zip.c | 390 ++++++
.../gnu_java_lang_management_VMThreadMXBeanImpl.c | 14 +-
runtime/java_lang_VMClass.c | 2 +-
runtime/java_lang_VMClassLoader.c | 2 +-
arch/ppc/signal.c => runtime/java_lang_VMString.c | 10 +-
runtime/java_lang_reflect_VMField.c | 489 +++++++
runtime/reflection.c | 494 +-------
scripts/gcc-arch.sh | 3 +
scripts/gcc-has-lib.sh | 11 +
sys/linux-arm/backtrace.c | 5 +
sys/linux-ppc/Makefile | 3 +
sys/linux-ppc/backtrace.c | 13 +
sys/linux-ppc/exception.c | 10 +
sys/linux-ppc/include/sys/signal.h | 22 +
sys/linux-ppc/signal.c | 20 +
.../CorruptedExceptionTableEndsAfterCode.class | Bin 0 -> 393 bytes
.../CorruptedExceptionTableInvalidHandlerPC.class | Bin 0 -> 396 bytes
.../CorruptedExceptionTableInvertedBorns.class | Bin 0 -> 393 bytes
test/functional/corrupt/CorruptedFallingOff.class | Bin 0 -> 227 bytes
.../corrupt/CorruptedIncompleteInsn.class | Bin 0 -> 230 bytes
.../corrupt/CorruptedInvalidBranchNeg.class | Bin 0 -> 237 bytes
.../corrupt/CorruptedInvalidBranchNotOnInsn.class | Bin 0 -> 243 bytes
.../corrupt/CorruptedInvalidBranchOut.class | Bin 0 -> 237 bytes
.../corrupt/CorruptedInvalidOpcode.class | Bin 0 -> 230 bytes
.../corrupt/CorruptedLoadConstantDouble.class | Bin 0 -> 281 bytes
.../corrupt/CorruptedLoadConstantIndex.class | Bin 0 -> 280 bytes
.../corrupt/CorruptedLoadConstantSimple.class | Bin 0 -> 281 bytes
test/functional/corrupt/CorruptedMaxLocalVar.class | Bin 0 -> 229 bytes
test/functional/corrupt/README | 10 +
test/functional/java/lang/JNITest.java | 10 +-
test/functional/jni/jnitest.c | 2 +-
test/functional/jvm/DoubleArithmeticTest.java | 6 +-
test/functional/jvm/FloatArithmeticTest.java | 6 +-
test/functional/jvm/GcTortureTest.java | 14 +-
test/functional/jvm/MethodInvokeVirtualTest.java | 14 +-
test/functional/jvm/MethodOverridingFinal.j | 15 +
test/functional/jvm/NoSuchMethodErrorTest.j | 18 +-
test/functional/jvm/lang/reflect/FieldTest.java | 938 --------------
.../test/java/lang/reflect/FieldAccessorsTest.java | 970 ++++++++++++++
.../test/java/lang/reflect/MethodTest.java | 28 +-
test/integration/Makefile | 2 +
test/integration/bytecode-test.c | 227 +++-
test/perf/ICTime.java | 1095 ++++++++++++++++
test/unit/arch-arm/Makefile | 39 +-
test/unit/arch-arm/compilation-unit-stub.c | 61 +
test/unit/arch-arm/encode-test.c | 222 ++++
test/unit/arch-arm/insn-selector-test.c | 164 +++
test/unit/arch-ppc/Makefile | 22 +
test/unit/arch-ppc/encode-test.c | 101 ++
test/unit/arch-ppc_32/Makefile | 1 -
test/unit/arch-x86/Makefile | 1 +
test/unit/arch-x86/encode-test.c | 129 ++-
test/unit/jit/Makefile | 4 +
test/unit/jit/arithmetic-bc-test.c | 2 +-
test/unit/jit/cfg-analyzer-test.c | 41 +
test/unit/jit/exception-stub.c | 6 +
test/unit/jit/linear-scan-test.c | 12 +-
test/unit/jit/live-range-test.c | 2 +
test/unit/jit/switch-bc-test.c | 241 ++++
test/unit/jit/trace-stub.c | 12 +-
test/unit/libharness/libharness.c | 3 +-
test/unit/vm/Makefile | 7 +
test/unit/vm/bitset-test.c | 25 +
test/unit/vm/class-stub.c | 3 +-
test/unit/vm/method-stub.c | 10 +
test/unit/vm/object-stub.c | 3 +-
test/unit/vm/preload-stub.c | 1 +
test/unit/vm/thread-stub.c | 4 +
test/unit/vm/verifier-test.c | 325 +++++
tools/test.py | 38 +-
torture/dacapo/compare-dacapo | 1 +
vm/annotation.c | 4 +-
vm/boehm-gc.c | 34 +-
vm/bytecode.c | 151 +++
vm/class.c | 89 +-
vm/classloader.c | 206 ++--
vm/gc.c | 62 +-
vm/interp.c | 267 ++++
vm/jar.c | 54 +-
vm/jato.c | 155 ++-
vm/jni-interface.c | 2 +-
vm/method.c | 40 +-
vm/object.c | 35 +-
vm/preload.c | 519 +--------
vm/signal.c | 9 +-
vm/string.c | 2 +-
vm/thread.c | 15 +-
vm/trace.c | 16 +-
vm/verifier.c | 990 +++++++++++++++
vm/verify-functions.c | 1121 ++++++++++++++++
235 files changed, 16644 insertions(+), 3798 deletions(-)
create mode 100644 .travis.yml
create mode 100644 Documentation/heap-profiling.txt
create mode 100644 Documentation/internals.txt
create mode 100644 arch/arm/encode.c
create mode 100644 arch/arm/include/arch/byteorder.h
create mode 100644 arch/arm/include/arch/encode.h
create mode 100644 arch/arm/include/arch/inline-cache.h
create mode 100644 arch/arm/include/arch/thread.h
create mode 100644 arch/arm/insn-selector.brg
create mode 100644 arch/arm/registers.c
create mode 100644 arch/arm/stubs_to_compile.c
create mode 100644 arch/ppc/encode.c
create mode 100644 arch/ppc/include/arch/atomic.h
create mode 100644 arch/ppc/include/arch/byteorder.h
create mode 100644 arch/ppc/include/arch/cmpxchg.h
create mode 100644 arch/ppc/include/arch/encode.h
create mode 100644 arch/ppc/include/arch/init.h
create mode 100644 arch/ppc/include/arch/inline-cache.h
create mode 100644 arch/ppc/include/arch/itable.h
create mode 100644 arch/ppc/include/arch/memory.h
delete mode 100644 arch/ppc/include/arch/signal.h
create mode 100644 arch/ppc/include/arch/text.h
create mode 100644 arch/ppc/init.c
delete mode 100644 arch/ppc/insn-selector.brg
create mode 100644 arch/ppc/registers_32.c
create mode 100644 arch/ppc/stubs_to_compile.c
create mode 100644 arch/x86/asm-offsets.c
create mode 100644 arch/x86/ic_lowlevel_32.S
create mode 100644 arch/x86/ic_lowlevel_64.S
create mode 100644 arch/x86/include/arch/byteorder.h
create mode 100644 arch/x86/include/arch/inline-cache.h
create mode 100644 arch/x86/include/arch/peephole.h
create mode 100644 arch/x86/inline-cache.c
create mode 100644 arch/x86/peephole.c
create mode 100644 cafebabe/stack_map_table_attribute.c
create mode 100644 include/arch/peephole.h
create mode 100644 include/cafebabe/stack_map_table_attribute.h
create mode 100644 include/jit/constant-pool.h
create mode 100644 include/jit/inline-cache.h
create mode 100644 include/jit/ssa.h
create mode 100644 include/lib/arena.h
create mode 100644 include/lib/big-endian.h
create mode 100644 include/lib/little-endian.h
create mode 100644 include/lib/swab.h
create mode 100644 include/lib/zip.h
create mode 100644 include/runtime/gnu_java_lang_management_VMThreadMXBeanImpl.h
create mode 100644 include/runtime/java_lang_VMString.h
create mode 100644 include/vm/interp.h
create mode 100644 include/vm/preload-classes.h
create mode 100644 include/vm/preload-methods.h
create mode 100644 include/vm/verifier.h
create mode 100644 jit/abc-removal.c
create mode 100644 jit/constant-pool.c
create mode 100644 jit/dce.c
create mode 100644 jit/inline-cache.c
create mode 100644 jit/ssa.c
create mode 100644 lib/arena.c
create mode 100644 lib/zip.c
rename arch/ppc/backtrace.c => runtime/gnu_java_lang_management_VMThreadMXBeanImpl.c (83%)
rename arch/ppc/signal.c => runtime/java_lang_VMString.c (87%)
create mode 100755 scripts/gcc-has-lib.sh
create mode 100644 sys/linux-ppc/Makefile
create mode 100644 sys/linux-ppc/backtrace.c
create mode 100644 sys/linux-ppc/exception.c
create mode 100644 sys/linux-ppc/include/sys/signal.h
create mode 100644 sys/linux-ppc/signal.c
create mode 100644 test/functional/corrupt/CorruptedExceptionTableEndsAfterCode.class
create mode 100644 test/functional/corrupt/CorruptedExceptionTableInvalidHandlerPC.class
create mode 100644 test/functional/corrupt/CorruptedExceptionTableInvertedBorns.class
create mode 100644 test/functional/corrupt/CorruptedFallingOff.class
create mode 100644 test/functional/corrupt/CorruptedIncompleteInsn.class
create mode 100644 test/functional/corrupt/CorruptedInvalidBranchNeg.class
create mode 100644 test/functional/corrupt/CorruptedInvalidBranchNotOnInsn.class
create mode 100644 test/functional/corrupt/CorruptedInvalidBranchOut.class
create mode 100644 test/functional/corrupt/CorruptedInvalidOpcode.class
create mode 100644 test/functional/corrupt/CorruptedLoadConstantDouble.class
create mode 100644 test/functional/corrupt/CorruptedLoadConstantIndex.class
create mode 100644 test/functional/corrupt/CorruptedLoadConstantSimple.class
create mode 100644 test/functional/corrupt/CorruptedMaxLocalVar.class
create mode 100644 test/functional/corrupt/README
create mode 100644 test/functional/jvm/MethodOverridingFinal.j
delete mode 100644 test/functional/jvm/lang/reflect/FieldTest.java
create mode 100644 test/functional/test/java/lang/reflect/FieldAccessorsTest.java
create mode 100644 test/perf/ICTime.java
create mode 100644 test/unit/arch-arm/compilation-unit-stub.c
create mode 100644 test/unit/arch-arm/encode-test.c
create mode 100644 test/unit/arch-arm/insn-selector-test.c
create mode 100644 test/unit/arch-ppc/Makefile
create mode 100644 test/unit/arch-ppc/encode-test.c
delete mode 100644 test/unit/arch-ppc_32/Makefile
create mode 100644 test/unit/jit/exception-stub.c
create mode 100644 test/unit/jit/switch-bc-test.c
create mode 100644 test/unit/vm/method-stub.c
create mode 100644 test/unit/vm/verifier-test.c
create mode 100644 vm/interp.c
create mode 100644 vm/verifier.c
create mode 100644 vm/verify-functions.c