/hg/release/icedtea6-1.7-shark: 16 new changesets
gbenson at icedtea.classpath.org
gbenson at icedtea.classpath.org
Wed Jun 2 08:34:48 PDT 2010
changeset 1a7b267eccb8 in /hg/release/icedtea6-1.7-shark
details: http://icedtea.classpath.org/hg/release/icedtea6-1.7-shark?cmd=changeset;node=1a7b267eccb8
author: Gary Benson <gbenson at redhat.com>
date: Thu Mar 11 16:35:10 2010 -0500
Fix bugs preventing Shark building itself
changeset d33878888360 in /hg/release/icedtea6-1.7-shark
details: http://icedtea.classpath.org/hg/release/icedtea6-1.7-shark?cmd=changeset;node=d33878888360
author: Gary Benson <gbenson at redhat.com>
date: Wed Jun 02 15:46:18 2010 +0100
Fix an issue with lost asynchronous exceptions
changeset 97e88099d052 in /hg/release/icedtea6-1.7-shark
details: http://icedtea.classpath.org/hg/release/icedtea6-1.7-shark?cmd=changeset;node=97e88099d052
author: Gary Benson <gbenson at redhat.com>
date: Wed Jun 02 15:48:00 2010 +0100
Shark updates
changeset b7ae2dea1cd1 in /hg/release/icedtea6-1.7-shark
details: http://icedtea.classpath.org/hg/release/icedtea6-1.7-shark?cmd=changeset;node=b7ae2dea1cd1
author: Gary Benson <gbenson at redhat.com>
date: Wed Jun 02 15:50:04 2010 +0100
PR icedtea/459: shark do nothing on stub frame
changeset 22e146a82c40 in /hg/release/icedtea6-1.7-shark
details: http://icedtea.classpath.org/hg/release/icedtea6-1.7-shark?cmd=changeset;node=22e146a82c40
author: Gary Benson <gbenson at redhat.com>
date: Wed Jun 02 15:51:33 2010 +0100
Update Shark for LLVM 2.8 API change r100304
changeset 34b933268f34 in /hg/release/icedtea6-1.7-shark
details: http://icedtea.classpath.org/hg/release/icedtea6-1.7-shark?cmd=changeset;node=34b933268f34
author: Gary Benson <gbenson at redhat.com>
date: Wed Jun 02 15:55:32 2010 +0100
Shark calling static jni methods jclass argument fix
changeset e91674622c51 in /hg/release/icedtea6-1.7-shark
details: http://icedtea.classpath.org/hg/release/icedtea6-1.7-shark?cmd=changeset;node=e91674622c51
author: Gary Benson <gbenson at redhat.com>
date: Wed Jun 02 15:56:29 2010 +0100
Fix PR icedtea/324
changeset 72482e71e8cf in /hg/release/icedtea6-1.7-shark
details: http://icedtea.classpath.org/hg/release/icedtea6-1.7-shark?cmd=changeset;node=72482e71e8cf
author: Gary Benson <gbenson at redhat.com>
date: Wed Jun 02 15:57:27 2010 +0100
Fix PR IcedTea/481
changeset 1d42cf5c96fd in /hg/release/icedtea6-1.7-shark
details: http://icedtea.classpath.org/hg/release/icedtea6-1.7-shark?cmd=changeset;node=1d42cf5c96fd
author: Gary Benson <gbenson at redhat.com>
date: Wed Jun 02 15:58:55 2010 +0100
Updated Zero to semi-latest upstream
changeset c58efa7c6e72 in /hg/release/icedtea6-1.7-shark
details: http://icedtea.classpath.org/hg/release/icedtea6-1.7-shark?cmd=changeset;node=c58efa7c6e72
author: Gary Benson <gbenson at redhat.com>
date: Fri May 07 11:25:06 2010 +0100
Revert an accidental reversion
changeset d22feecddbd7 in /hg/release/icedtea6-1.7-shark
details: http://icedtea.classpath.org/hg/release/icedtea6-1.7-shark?cmd=changeset;node=d22feecddbd7
author: Gary Benson <gbenson at redhat.com>
date: Wed Jun 02 16:30:20 2010 +0100
Backport new frame anchor and stack overflow code for Zero and Shark
changeset 9c0303256eb8 in /hg/release/icedtea6-1.7-shark
details: http://icedtea.classpath.org/hg/release/icedtea6-1.7-shark?cmd=changeset;node=9c0303256eb8
author: Gary Benson <gbenson at redhat.com>
date: Tue May 11 09:26:09 2010 +0100
Remove a now-unnecessary hack
changeset 5c5e31018399 in /hg/release/icedtea6-1.7-shark
details: http://icedtea.classpath.org/hg/release/icedtea6-1.7-shark?cmd=changeset;node=5c5e31018399
author: Gary Benson <gbenson at redhat.com>
date: Thu May 13 15:53:35 2010 +0100
Fix signedness of T_BYTE and T_CHAR results
changeset 137342fa4b62 in /hg/release/icedtea6-1.7-shark
details: http://icedtea.classpath.org/hg/release/icedtea6-1.7-shark?cmd=changeset;node=137342fa4b62
author: Gary Benson <gbenson at redhat.com>
date: Fri May 14 11:16:36 2010 +0100
Add missing semicolon
changeset e24af79dcade in /hg/release/icedtea6-1.7-shark
details: http://icedtea.classpath.org/hg/release/icedtea6-1.7-shark?cmd=changeset;node=e24af79dcade
author: Gary Benson <gbenson at redhat.com>
date: Fri May 14 13:55:26 2010 +0100
Fix PR icedtea/484
changeset 53901c78cd5f in /hg/release/icedtea6-1.7-shark
details: http://icedtea.classpath.org/hg/release/icedtea6-1.7-shark?cmd=changeset;node=53901c78cd5f
author: Gary Benson <gbenson at redhat.com>
date: Fri May 14 17:37:29 2010 +0100
Fix stack leak in Shark
This commit fixes a bug where having an exception handler in a loop
would caused a little bit of stack to be allocated every time the
handler was invoked. This code...
int a = 23; int b = 0; while (true) { try { int c =
a / b; } catch (ArithmeticException e) { // do nothing
} }
...would eventually fail with a stack overflow.
diffstat:
40 files changed, 1102 insertions(+), 368 deletions(-)
ChangeLog | 317 ++++++++++
Makefile.am | 1
patches/icedtea-shark.patch | 21
patches/zero/shark_do_nothing_on_stub_frame.patch | 15
ports/hotspot/make/linux/makefiles/zeroshark.make | 4
ports/hotspot/src/cpu/zero/vm/cppInterpreter_zero.cpp | 147 +---
ports/hotspot/src/cpu/zero/vm/cppInterpreter_zero.hpp | 12
ports/hotspot/src/cpu/zero/vm/disassembler_zero.hpp | 9
ports/hotspot/src/cpu/zero/vm/entryFrame_zero.hpp | 8
ports/hotspot/src/cpu/zero/vm/entry_zero.hpp | 30
ports/hotspot/src/cpu/zero/vm/fakeStubFrame_zero.hpp | 4
ports/hotspot/src/cpu/zero/vm/frame_zero.cpp | 14
ports/hotspot/src/cpu/zero/vm/frame_zero.hpp | 22
ports/hotspot/src/cpu/zero/vm/frame_zero.inline.hpp | 12
ports/hotspot/src/cpu/zero/vm/globals_zero.hpp | 11
ports/hotspot/src/cpu/zero/vm/interpreterFrame_zero.hpp | 8
ports/hotspot/src/cpu/zero/vm/interpreterRT_zero.cpp | 7
ports/hotspot/src/cpu/zero/vm/javaFrameAnchor_zero.hpp | 27
ports/hotspot/src/cpu/zero/vm/stack_zero.cpp | 86 ++
ports/hotspot/src/cpu/zero/vm/stack_zero.hpp | 26
ports/hotspot/src/cpu/zero/vm/stack_zero.inline.hpp | 48 +
ports/hotspot/src/cpu/zero/vm/stubGenerator_zero.cpp | 78 +-
ports/hotspot/src/os_cpu/linux_zero/vm/thread_linux_zero.hpp | 24
ports/hotspot/src/share/vm/includeDB_shark | 3
ports/hotspot/src/share/vm/includeDB_zero | 15
ports/hotspot/src/share/vm/shark/sharkBlock.cpp | 12
ports/hotspot/src/share/vm/shark/sharkBuilder.cpp | 57 +
ports/hotspot/src/share/vm/shark/sharkBuilder.hpp | 22
ports/hotspot/src/share/vm/shark/sharkCacheDecache.cpp | 1
ports/hotspot/src/share/vm/shark/sharkCodeBuffer.hpp | 11
ports/hotspot/src/share/vm/shark/sharkCompiler.cpp | 4
ports/hotspot/src/share/vm/shark/sharkContext.cpp | 6
ports/hotspot/src/share/vm/shark/sharkNativeWrapper.cpp | 15
ports/hotspot/src/share/vm/shark/sharkRuntime.cpp | 53 +
ports/hotspot/src/share/vm/shark/sharkRuntime.hpp | 10
ports/hotspot/src/share/vm/shark/sharkStack.cpp | 87 ++
ports/hotspot/src/share/vm/shark/sharkStack.hpp | 48 +
ports/hotspot/src/share/vm/shark/sharkTopLevelBlock.cpp | 176 ++++-
ports/hotspot/src/share/vm/shark/sharkTopLevelBlock.hpp | 5
ports/hotspot/src/share/vm/shark/shark_globals.hpp | 14
diffs (truncated from 2695 to 500 lines):
diff -r 0424d3023049 -r 53901c78cd5f ChangeLog
--- a/ChangeLog Tue Mar 16 10:29:49 2010 -0400
+++ b/ChangeLog Fri May 14 17:37:29 2010 +0100
@@ -1,3 +1,309 @@ 2010-03-16 Deepak Bhole <dbhole at redhat.
+2010-05-14 Gary Benson <gbenson at redhat.com>
+
+ * ports/hotspot/src/share/vm/shark/sharkCodeBuffer.hpp
+ (SharkCodeBuffer::inline_data): New method.
+ * ports/hotspot/src/share/vm/shark/sharkBuilder.hpp
+ (SharkBuilder::CreateInlineData): Likewise.
+ * ports/hotspot/src/share/vm/shark/sharkBuilder.cpp
+ (SharkBuilder::CreateInlineData): Likewise.
+ * ports/hotspot/src/share/vm/shark/sharkTopLevelBlock.cpp
+ (SharkTopLevelBlock::handle_exception): Inline the exception
+ handler table in the code buffer rather than creating it on
+ the stack.
+
+2010-05-14 Gary Benson <gbenson at redhat.com>
+
+ PR icedtea/484
+ * ports/hotspot/src/cpu/zero/vm/cppInterpreter_zero.hpp
+ (CppInterpreter::normal_entry): Return int instead of void.
+ (CppInterpreter::native_entry): Likewise.
+ (CppInterpreter::accessor_entry): Likewise.
+ (CppInterpreter::empty_entry): Likewise.
+ * ports/hotspot/src/cpu/zero/vm/cppInterpreter_zero.cpp
+ (CppInterpreter::normal_entry): Return 0.
+ (CppInterpreter::native_entry): Likewise.
+ (CppInterpreter::accessor_entry): Likewise.
+ (CppInterpreter::empty_entry): Likewise.
+ * ports/hotspot/src/cpu/zero/vm/entry_zero.hpp
+ (ZeroEntry::NormalEntryFunc): Return int instead of void.
+ (ZeroEntry::OSREntryFunc): Likewise.
+ (ZeroEntry::invoke): Deoptimize where necessary.
+ (ZeroEntry::invoke_osr): Likewise.
+ (ZeroEntry::maybe_deoptimize): New method.
+ * ports/hotspot/src/share/vm/shark/sharkBuilder.hpp
+ (SharkBuilder::deoptimized_entry_point): New method.
+ * ports/hotspot/src/share/vm/shark/sharkBuilder.hpp
+ (SharkBuilder::uncommon_trap): Return int instead of void.
+ (SharkBuilder::deoptimized_entry_point): New method.
+ * ports/hotspot/src/share/vm/shark/sharkContext.cpp
+ (SharkContext::SharkContext): Updated entry point types.
+ * ports/hotspot/src/share/vm/shark/sharkNativeWrapper.cpp
+ (SharkNativeWrapper::initialize): Make generated wrappers
+ return 0 instead of void.
+ * ports/hotspot/src/share/vm/shark/sharkRuntime.cpp
+ (SharkRuntime::uncommon_trap): Return int instead of void.
+ * ports/hotspot/src/share/vm/shark/sharkRuntime.cpp
+ (SharkRuntime::uncommon_trap): Don't enter the interpreter,
+ just return the number of frames that have been deoptimized.
+ * ports/hotspot/src/share/vm/shark/sharkTopLevelBlock.cpp
+ (SharkTopLevelBlock::do_trap): Return the number of deoptimized
+ frames instead of void.
+ (SharkTopLevelBlock::handle_return): Return 0 instead of void.
+ (SharkTopLevelBlock::do_call): Deoptimize where necessary.
+
+ * ports/hotspot/make/linux/makefiles/zeroshark.make:
+ Note that ARM interpreter needs updating for this change too.
+
+2010-05-14 Gary Benson <gbenson at redhat.com>
+
+ * ports/hotspot/src/cpu/zero/vm/cppInterpreter_zero.cpp
+ (AbstractInterpreter::layout_activation): Add missing semicolon.
+
+2010-05-13 Gary Benson <gbenson at redhat.com>
+
+ PR icedtea/483
+ * ports/hotspot/src/share/vm/shark/sharkNativeWrapper.cpp
+ (SharkNativeWrapper::initialize): Fix signedness of T_BYTE
+ and T_CHAR results.
+
+2010-05-11 Gary Benson <gbenson at redhat.com>
+
+ PR icedtea/323
+ * patches/icedtea-shark.patch
+ (Deoptimization::create_vframeArray): Remove a now-unnecessary hack.
+
+2010-05-10 Gary Benson <gbenson at redhat.com>
+
+ PR icedtea/323
+ * ports/hotspot/src/cpu/zero/vm/javaFrameAnchor_zero.hpp
+ (JavaFrameAnchor::_last_Java_fp): New field.
+ (JavaFrameAnchor::clear): Also clear the above.
+ (JavaFrameAnchor::set): New method.
+ (JavaFrameAnchor::copy): Use the above.
+ (JavaFrameAnchor::set_lat_Java_sp): Removed.
+ (JavaFrameAnchor::last_Java_fp): New method.
+ (JavaFrameAnchor::last_Java_fp_offset): Likewise.
+ * ports/hotspot/src/os_cpu/linux_zero/vm/thread_linux_zero.hpp
+ (JavaThread::last_Java_fp): Likewise.
+ (JavaThread::last_Java_fp_offset): Likewise.
+ (JavaThread::set_last_Java_frame): Use new new frame anchor code.
+ (JavaThread::reset_last_Java_frame): Likewise.
+ (JavaThread::pd_last_frame): Likewise.
+ * ports/hotspot/src/cpu/zero/vm/frame_zero.hpp
+ (frame::frame): Flipped arguments.
+ (frame::_fp): Replaced with...
+ (frame::_zeroframe): New field.
+ (frame::fp): Updated.
+ (frame::zeroframe): Likewise.
+ * ports/hotspot/src/cpu/zero/vm/frame_zero.inline.hpp
+ (frame::frame): Likewise.
+ (frame::sender_sp): Likewise.
+ (frame::id): Likewise.
+ * ports/hotspot/src/cpu/zero/vm/frame_zero.cpp
+ (frame::sender_for_entry_frame): Likewise.
+ (frame::sender_for_nonentry_frame): Likewise.
+ (frame::zero_print_on_error): Likewise.
+ * ports/hotspot/src/cpu/zero/vm/cppInterpreter_zero.cpp
+ (AbstractInterpreter::layout_activation): Use new frame
+ anchor code.
+
+ * ports/hotspot/src/cpu/zero/vm/stack_zero.hpp
+ (ZeroStack::suggest_size): New method.
+ (ZeroStack::total_words): Likewise.
+ (ZeroStack::abi_stack_available): Likewise.
+ (ZeroStack::zap): Likewise.
+ * ports/hotspot/src/cpu/zero/vm/stack_zero.inline.hpp
+ (ZeroStack::abi_stack_available): New method.
+ (ZeroStack::overflow_check): Use the above.
+ * ports/hotspot/src/cpu/zero/vm/stack_zero.cpp
+ (ZeroStack::suggest_size): New method.
+ (ZeroStack::zap): Likewise.
+ (ZeroStack::handle_overflow): Use new frame anchor code.
+ * ports/hotspot/src/cpu/zero/vm/stubGenerator_zero.cpp
+ (StubGenerator::call_stub): Use ZeroStack::suggest_size.
+
+ * ports/hotspot/src/share/vm/shark/sharkBuilder.hpp
+ (SharkBuilder::throw_StackOverflowError): New method.
+ * ports/hotspot/src/share/vm/shark/sharkBuilder.cpp
+ (SharkBuilder::throw_StackOverflowError): Likewise.
+ * ports/hotspot/src/share/vm/shark/sharkStack.hpp
+ (SharkStack::initialize): Removed argument.
+ (SharkStack::CreateStackOverflowCheck): Updated.
+ (SharkStack::CreateCheckStack): Removed method.
+ (SharkStack::frame_anchor_addr): Likewise.
+ (SharkStack::last_Java_sp_addr): New method.
+ (SharkStack::last_Java_fp_addr): New method.
+ (SharkStack::CreateSetLastJavaFrame): Use new frame anchor code.
+ (SharkStack::CreateResetLastJavaFrame): Likewise.
+ (SharkStack::CreateAssertLastJavaSPIsNull): New method.
+ * ports/hotspot/src/share/vm/shark/sharkStack.cpp
+ (SharkStack::initialize): Updated for new stack overflow code.
+ (SharkStack::CreateStackOverflowCheck): Likewise.
+ (SharkStack::CreateCheckStack): Removed.
+ (SharkStackWithNormalFrame::SharkStackWithNormalFrame): Updated
+ for new stack overflow code.
+ (SharkStackWithNativeFrame::SharkStackWithNativeFrame): Likewise.
+ (SharkStack::CreateAssertLastJavaSPIsNull): New method.
+
+ * ports/hotspot/make/linux/makefiles/zeroshark.make
+ (CFLAGS): Remove -DHOTSPOT_ASM until the ARM interpreter
+ and JIT are updated to use the new frame anchor code.
+
+ * ports/hotspot/src/share/vm/shark/sharkNativeWrapper.cpp
+ (SharkNativeWrapper::initialize): Whitespace fix.
+
+2010-05-07 Gary Benson <gbenson at redhat.com>
+
+ * ports/hotspot/src/cpu/zero/vm/stack_zero.hpp
+ (ZeroStack::_shadow_pages_size): New field.
+ (ZeroStack::ZeroStack): Initialize the above.
+ (ZeroStack::shadow_pages_size): New method.
+ (ZeroStack::overflow_check): Likewise.
+ (ZeroStack::handle_overflow): Likewise.
+ * ports/hotspot/src/cpu/zero/vm/stack_zero.inline.hpp: New file.
+ * ports/hotspot/src/cpu/zero/vm/stack_zero.cpp: Likewise.
+ * ports/hotspot/src/cpu/zero/vm/cppInterpreter_zero.hpp
+ (CppInterpreter::stack_overflow_imminent): Removed.
+ * ports/hotspot/src/cpu/zero/vm/cppInterpreter_zero.cpp
+ (CppInterpreter::stack_overflow_imminent): Likewise.
+ (CppInterpreter::normal_entry): Use new stack overflow code.
+ (CppInterpreter::main_loop): Likewise.
+ (CppInterpreter::native_entry): Likewise.
+ (InterpreterFrame::build): Likewise.
+ * ports/hotspot/src/cpu/zero/vm/entryFrame_zero.hpp
+ (EntryFrame::build): Likewise.
+ * ports/hotspot/src/cpu/zero/vm/fakeStubFrame_zero.hpp
+ (FakeStubFrame::build): Likewise.
+ * ports/hotspot/src/cpu/zero/vm/interpreterFrame_zero.hpp
+ (InterpreterFrame::build): Likewise.
+ * ports/hotspot/src/cpu/zero/vm/interpreterRT_zero.cpp
+ (InterpreterRuntime::slow_signature_handler): Likewise.
+ * ports/hotspot/src/cpu/zero/vm/stubGenerator_zero.cpp
+ (StubGenerator::call_stub): Likewise.
+ (EntryFrame::build): Likewise.
+ * ports/hotspot/src/share/vm/shark/sharkRuntime.cpp
+ (SharkRuntime::uncommon_trap): Likewise.
+ (FakeStubFrame::build): Likewise.
+
+ * ports/hotspot/src/os_cpu/linux_zero/vm/thread_linux_zero.hpp
+ (JavaThread::set_last_Java_frame): Refactored.
+ (JavaThread::reset_last_Java_frame): Likewise.
+
+ * ports/hotspot/src/cpu/zero/vm/globals_zero.hpp: Updated.
+ * ports/hotspot/src/cpu/zero/vm/shark_globals_zero.hpp: Likewise.
+
+ * ports/hotspot/src/share/vm/includeDB_zero: Updated.
+ * ports/hotspot/src/share/vm/includeDB_shark: Likewise.
+
+ * ports/hotspot/src/share/vm/shark/sharkCacheDecache.cpp
+ (SharkDecacher::end_frame): Updated for newer HotSpot.
+
+2010-05-05 Gary Benson <gbenson at redhat.com>
+
+ PR icedtea/481
+ * ports/hotspot/src/share/vm/shark/sharkTopLevelBlock.cpp
+ (SharkTopLevelBlock::improve_virtual_call): Disable an
+ optimization that cannot currently be supported.
+
+2010-04-30 Gary Benson <gbenson at redhat.com>
+
+ PR icedtea/324
+ * ports/hotspot/src/share/vm/shark/sharkTopLevelBlock.cpp
+ (SharkTopLevelBlock::do_aload): Cope with cases where
+ the array's type is unknown.
+ (SharkTopLevelBlock::do_astore): Likewise.
+
+2010-04-22 Xerxes RÃ¥nby <xerxes at zafena.se>
+
+ * ports/hotspot/src/share/vm/shark/sharkNativeWrapper.cpp
+ (SharkNativeWrapper::initialize): Shark calling static jni
+ methods jclass argument fix.
+
+2010-04-19 Xerxes RÃ¥nby <xerxes at zafena.se>
+
+ * ports/hotspot/src/share/vm/shark/sharkBuilder.cpp
+ (SharkBuilder::memset): Update Shark for LLVM 2.8 API change.
+ LLVM 2.8 added a fifth isVolatile field for memset
+ introduced with LLVM r100304.
+ (SharkBuilder::CreateMemset): Likewise
+
+2010-04-12 Xerxes RÃ¥nby <xerxes at zafena.se>
+
+ PR icedtea/459:
+ * Makefile.am: (ICEDTEA_PATCHES):
+ Apply patches/zero/shark_do_nothing_on_stub_frame.patch.
+ * ports/hotspot/src/cpu/zero/vm/frame_zero.cpp
+ (frame::is_fake_stub_frame): New method.
+ * ports/hotspot/src/cpu/zero/vm/frame_zero.hpp
+ (frame::is_fake_stub_frame): Likewise.
+ * patches/zero/shark_do_nothing_on_stub_frame.patch: New.
+
+2010-03-19 Gary Benson <gbenson at redhat.com>
+
+ * ports/hotspot/src/cpu/zero/vm/disassembler_zero.hpp
+ (Disassembler::pd_instruction_alignment): Return a usable default.
+ (Disassembler::pd_cpu_opts): Likewise.
+ * ports/hotspot/src/share/vm/shark/sharkBlock.cpp
+ (SharkBlock::do_field_access): Indentation fixes.
+ * ports/hotspot/src/share/vm/shark/sharkBuilder.hpp
+ (SharkBuilder::throw_ArithmeticException): New method.
+ (SharkBuilder::throw_ClassCastException): Likewise.
+ (SharkBuilder::frame_address): Likewise.
+ (SharkBuilder::CreateGetFrameAddress): Likewise.
+ * ports/hotspot/src/share/vm/shark/sharkBuilder.cpp
+ (SharkBuilder::throw_ArithmeticException): New method.
+ (SharkBuilder::throw_ClassCastException): Likewise.
+ (SharkBuilder::frame_address): Likewise.
+ (SharkBuilder::CreateGetFrameAddress): Likewise.
+ (SharkBuilder::CreateMemoryBarrier): Actually do something on x86.
+ * ports/hotspot/src/share/vm/shark/sharkNativeWrapper.cpp
+ (SharkNativeWrapper::initialize): Implemented UseMembar code.
+ * ports/hotspot/src/share/vm/shark/sharkRuntime.hpp
+ (SharkRuntime::throw_ArithmeticException): New method.
+ (SharkRuntime::throw_ClassCastException): Likewise.
+ * ports/hotspot/src/share/vm/shark/sharkRuntime.cpp
+ (SharkRuntime::throw_ArithmeticException): New method.
+ (SharkRuntime::throw_ClassCastException): Likewise.
+ * ports/hotspot/src/share/vm/shark/sharkStack.hpp
+ (SharkStack::initialize): Added setup_sp_and_method parameter.
+ (SharkStack::CreateStackOverflowCheck): New method.
+ (SharkStack::CreateCheckStack): Likewise.
+ (SharkStack::interpreter_entry_point): Likewise.
+ (SharkStackWithNormalFrame::interpreter_entry_point): Likewise.
+ (SharkStackWithNativeFrame::interpreter_entry_point): Likewise.
+ (SharkStack::CreateHardStackOverflowCheck): Removed.
+ (SharkStack::CreateSoftStackOverflowCheck): Likewise.
+ * ports/hotspot/src/share/vm/shark/sharkStack.cpp
+ (SharkStack::initialize): Added setup_sp_and_method parameter,
+ and changed to use new stack overflow detection code.
+ (SharkStack::CreateStackOverflowCheck): New method.
+ (SharkStack::CreateCheckStack): Likewise.
+ (SharkStack::CreateHardStackOverflowCheck): Removed.
+ (SharkStack::CreateSoftStackOverflowCheck): Likewise.
+ (SharkStackWithNormalFrame::interpreter_entry_point): Likewise.
+ (SharkStackWithNativeFrame::interpreter_entry_point): Likewise.
+ (SharkStackWithNormalFrame::SharkStackWithNormalFrame): Updated.
+ (SharkStackWithNativeFrame::SharkStackWithNativeFrame): Likewise.
+ * ports/hotspot/src/share/vm/shark/sharkTopLevelBlock.hpp
+ (SharkTopLevelBlock::static_field_ok_in_clinit): New method.
+ * ports/hotspot/src/share/vm/shark/sharkTopLevelBlock.cpp
+ (SharkTopLevelBlock::scan_for_traps): New trap.
+ (SharkTopLevelBlock::static_field_ok_in_clinit): New method.
+ (SharkTopLevelBlock::zero_check_value): Throw arithmetic exception
+ for divide by zero.
+ (SharkTopLevelBlock::do_full_instance_check): Throw class cast
+ exception.
+ (SharkTopLevelBlock::do_monitorexit): Do not handle exceptions.
+ * ports/hotspot/src/share/vm/shark/shark_globals.hpp:
+ Make debugging options available in product builds.
+
+2010-03-18 Gary Benson <gbenson at redhat.com>
+
+ * ports/hotspot/src/cpu/zero/vm/cppInterpreter_zero.cpp
+ (CppInterpreter::native_entry): Remove unnecessary calls to
+ JavaThread::set_do_not_unlock and JavaThread::clr_do_not_unlock,
+ fixing an issue that caused asynchronous exceptions to be lost.
+
2010-03-16 Deepak Bhole <dbhole at redhat.com>
* plugin/icedteanp/IcedTeaPluginRequestProcessor.cc
@@ -205,6 +511,17 @@ 2010-03-18 Pavel Tisnovsky <ptisnovs at re
* patches/icedtea-jtreg-httpTest.patch: new regression test
to check if the cacerts keytool database is configured and
created properly and if SSL is really working.
+
+2010-03-11 Gary Benson <gbenson at redhat.com>
+
+ * ports/hotspot/src/share/vm/shark/sharkCompiler.cpp
+ (SharkCompiler::compile_method): Catch typeflow failures more
+ generally.
+ * ports/hotspot/src/share/vm/shark/sharkTopLevelBlock.cpp
+ (SharkTopLevelBlock::scan_for_traps): New trap.
+ (SharkTopLevelBlock::do_call): Add assertion to check the above.
+ (SharkTopLevelBlock::static_subtype_check): Deal with unloaded
+ object_klass.
2010-03-11 Gary Benson <gbenson at redhat.com>
diff -r 0424d3023049 -r 53901c78cd5f Makefile.am
--- a/Makefile.am Tue Mar 16 10:29:49 2010 -0400
+++ b/Makefile.am Fri May 14 17:37:29 2010 +0100
@@ -209,6 +209,7 @@ ICEDTEA_PATCHES = \
patches/zero/6909153.patch \
patches/zero/6913869.patch \
patches/zero/6914622.patch \
+ patches/zero/shark_do_nothing_on_stub_frame.patch \
patches/icedtea-notice-safepoints.patch \
patches/icedtea-parisc-opt.patch \
patches/icedtea-lucene-crash.patch \
diff -r 0424d3023049 -r 53901c78cd5f patches/icedtea-shark.patch
--- a/patches/icedtea-shark.patch Tue Mar 16 10:29:49 2010 -0400
+++ b/patches/icedtea-shark.patch Fri May 14 17:37:29 2010 +0100
@@ -101,27 +101,6 @@
UnrollBlock* info = new UnrollBlock(array->frame_size() * BytesPerWord,
caller_adjustment * BytesPerWord,
-@@ -890,7 +897,20 @@
- // stuff a C2I adapter we can properly fill in the callee-save
- // register locations.
- frame caller = fr.sender(reg_map);
-+#ifdef ZERO
-+ int frame_size;
-+ {
-+ // In zero, frame::sp() is the *end* of the frame, so
-+ // caller.sp() - fr.sp() is the size of the *caller*.
-+ RegisterMap dummy_map(thread, false);
-+ frame frame_1 = thread->last_frame();
-+ frame frame_2 = frame_1.sender(&dummy_map);
-+ assert(frame_2.sp() == fr.sp(), "should be");
-+ frame_size = frame_2.sp() - frame_1.sp();
-+ }
-+#else
- int frame_size = caller.sp() - fr.sp();
-+#endif // ZERO
-
- frame sender = caller;
-
@@ -1057,7 +1077,7 @@
JRT_END
diff -r 0424d3023049 -r 53901c78cd5f patches/zero/shark_do_nothing_on_stub_frame.patch
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/patches/zero/shark_do_nothing_on_stub_frame.patch Fri May 14 17:37:29 2010 +0100
@@ -0,0 +1,15 @@
+Index: hotspot/src/share/vm/runtime/frame.cpp
+===================================================================
+--- openjdk/hotspot.orig/src/share/vm/runtime/frame.cpp 2010-02-17 04:11:10.000000000 +0100
++++ openjdk/hotspot/src/share/vm/runtime/frame.cpp 2010-03-25 10:06:18.334380336 +0100
+@@ -1205,6 +1205,10 @@
+ if (is_interpreted_frame()) { oops_interpreted_do(f, map, use_interpreter_oop_map_cache);
+ } else if (is_entry_frame()) { oops_entry_do (f, map);
+ } else if (CodeCache::contains(pc())) { oops_code_blob_do (f, map);
++#ifdef SHARK
++ } else if (is_fake_stub_frame()) {
++ // nothing to do
++#endif // SHARK
+ } else {
+ ShouldNotReachHere();
+ }
diff -r 0424d3023049 -r 53901c78cd5f ports/hotspot/make/linux/makefiles/zeroshark.make
--- a/ports/hotspot/make/linux/makefiles/zeroshark.make Tue Mar 16 10:29:49 2010 -0400
+++ b/ports/hotspot/make/linux/makefiles/zeroshark.make Fri May 14 17:37:29 2010 +0100
@@ -30,7 +30,9 @@ Obj_Files += asm_helper.o
Obj_Files += asm_helper.o
Obj_Files += cppInterpreter_arm.o
-CFLAGS += -DHOTSPOT_ASM
+#XXX disabled until it has the updated frame anchor code (PR icedtea/323)
+#XXX and the updated calling convention for deopt (PR icedtea/484)
+#CFLAGS += -DHOTSPOT_ASM
%.o: %.S
@echo Assembling $<
diff -r 0424d3023049 -r 53901c78cd5f ports/hotspot/src/cpu/zero/vm/cppInterpreter_zero.cpp
--- a/ports/hotspot/src/cpu/zero/vm/cppInterpreter_zero.cpp Tue Mar 16 10:29:49 2010 -0400
+++ b/ports/hotspot/src/cpu/zero/vm/cppInterpreter_zero.cpp Fri May 14 17:37:29 2010 +0100
@@ -37,27 +37,18 @@
thread->reset_last_Java_frame(); \
fixup_after_potential_safepoint()
-void CppInterpreter::normal_entry(methodOop method, intptr_t UNUSED, TRAPS) {
+int CppInterpreter::normal_entry(methodOop method, intptr_t UNUSED, TRAPS) {
JavaThread *thread = (JavaThread *) THREAD;
- ZeroStack *stack = thread->zero_stack();
-
- // Adjust the caller's stack frame to accomodate any additional
- // local variables we have contiguously with our parameters.
- int extra_locals = method->max_locals() - method->size_of_parameters();
- if (extra_locals > 0) {
- if (extra_locals > stack->available_words()) {
- Unimplemented();
- }
- for (int i = 0; i < extra_locals; i++)
- stack->push(0);
- }
// Allocate and initialize our frame.
- InterpreterFrame *frame = InterpreterFrame::build(stack, method, thread);
+ InterpreterFrame *frame = InterpreterFrame::build(method, CHECK_0);
thread->push_zero_frame(frame);
// Execute those bytecodes!
main_loop(0, THREAD);
+
+ // No deoptimized frames on the stack
+ return 0;
}
void CppInterpreter::main_loop(int recurse, TRAPS) {
@@ -75,12 +66,6 @@ void CppInterpreter::main_loop(int recur
intptr_t *result = NULL;
int result_slots = 0;
-
- // Check we're not about to run out of stack
- if (stack_overflow_imminent(thread)) {
- CALL_VM_NOCHECK(InterpreterRuntime::throw_StackOverflowError(thread));
- goto unwind_and_return;
- }
while (true) {
// We can set up the frame anchor with everything we want at
@@ -123,9 +108,9 @@ void CppInterpreter::main_loop(int recur
int monitor_words = frame::interpreter_frame_monitor_size();
// Allocate the space
- if (monitor_words > stack->available_words()) {
- Unimplemented();
- }
+ stack->overflow_check(monitor_words, THREAD);
+ if (HAS_PENDING_EXCEPTION)
+ break;
stack->alloc(monitor_words * wordSize);
// Move the expression stack contents
@@ -172,8 +157,6 @@ void CppInterpreter::main_loop(int recur
}
}
- unwind_and_return:
-
// Unwind the current frame
thread->pop_zero_frame();
@@ -185,7 +168,7 @@ void CppInterpreter::main_loop(int recur
stack->push(result[-i]);
}
-void CppInterpreter::native_entry(methodOop method, intptr_t UNUSED, TRAPS) {
+int CppInterpreter::native_entry(methodOop method, intptr_t UNUSED, TRAPS) {
// Make sure method is native and not abstract
assert(method->is_native() && !method->is_abstract(), "should be");
@@ -193,20 +176,13 @@ void CppInterpreter::native_entry(method
ZeroStack *stack = thread->zero_stack();
// Allocate and initialize our frame
- InterpreterFrame *frame = InterpreterFrame::build(stack, method, thread);
+ InterpreterFrame *frame = InterpreterFrame::build(method, CHECK_0);
thread->push_zero_frame(frame);
interpreterState istate = frame->interpreter_state();
intptr_t *locals = istate->locals();
- // Check we're not about to run out of stack
- if (stack_overflow_imminent(thread)) {
- CALL_VM_NOCHECK(InterpreterRuntime::throw_StackOverflowError(thread));
- goto unwind_and_return;
More information about the distro-pkg-dev
mailing list