* src/vm/builtin.c (builtin_canstore): Throw an ArrayStoreException.
(builtin_fast_canstore): Do not throw any exceptions.
* src/vm/builtin.h (BUILTIN_canstore): Removed.
* src/vm/builtintable.inc: Adapted entry for builtin_canstore.
* src/vm/exceptions.h (EXCEPTION_HARDWARE_ARRAYSTORE): Added.
* src/vm/signal.c (signal_handle): Added case for ArrayStoreException.
* src/vm/jit/emit-common.h (emit_arraystore_check): Added prototype.
* src/vm/jit/stack.c (stack_analyse): ICMD_AASTORE now uses fast canstore.
* src/vm/jit/alpha/codegen.c (codegen_emit): ICMD_AASTORE uses fast canstore.
* src/vm/jit/alpha/emit.c (emit_arraystore_check): Implemented.
* src/vm/jit/arm/codegen.c: Likewise.
* src/vm/jit/arm/emit.c: Likewise.
* src/vm/jit/i386/codegen.c: Likewise.
* src/vm/jit/i386/emit.c: Likewise.
* src/vm/jit/m68k/codegen.c: Likewise.
* src/vm/jit/m68k/emit.c: Likewise.
* src/vm/jit/mips/codegen.c: Likewise.
* src/vm/jit/mips/emit.c: Likewise.
* src/vm/jit/powerpc/codegen.c: Likewise.
* src/vm/jit/powerpc/emit.c: Likewise.
* src/vm/jit/powerpc64/codegen.c: Likewise.
* src/vm/jit/powerpc64/emit.c: Likewise.
* src/vm/jit/s390/codegen.c: Likewise.
* src/vm/jit/s390/emit.c: Likewise.
* src/vm/jit/sparc64/codegen.c: Likewise.
* src/vm/jit/sparc64/emit.c: Likewise.
* src/vm/jit/x86_64/codegen.c: Likewise.
* src/vm/jit/x86_64/emit.c: Likewise.
27 files changed: