# HG changeset patch # User Thomas Wuerthinger # Date 1324155824 -3600 # Node ID 82af018d61db0b2fb398badb110bf5b70ec59d2a # Parent 04b9a2566eecad0f545991ebd44c5431e34022ea Merge fixes. diff -r 04b9a2566eec -r 82af018d61db src/cpu/x86/vm/stubGenerator_x86_64.cpp --- a/src/cpu/x86/vm/stubGenerator_x86_64.cpp Sat Dec 17 21:40:27 2011 +0100 +++ b/src/cpu/x86/vm/stubGenerator_x86_64.cpp Sat Dec 17 22:03:44 2011 +0100 @@ -2944,7 +2944,6 @@ // caller saved registers were assumed volatile in the compiler. address generate_throw_exception(const char* name, address runtime_entry, - bool restore_saved_exception_pc, Register arg1 = noreg, Register arg2 = noreg) { // Information about frame layout at time of blocking runtime call. @@ -3072,7 +3071,7 @@ StubRoutines::_throw_WrongMethodTypeException_entry = generate_throw_exception("WrongMethodTypeException throw_exception", CAST_FROM_FN_PTR(address, SharedRuntime::throw_WrongMethodTypeException), - false, rax, rcx); + rax, rcx); } void generate_all() { diff -r 04b9a2566eec -r 82af018d61db src/share/vm/ci/ciEnv.cpp --- a/src/share/vm/ci/ciEnv.cpp Sat Dec 17 21:40:27 2011 +0100 +++ b/src/share/vm/ci/ciEnv.cpp Sat Dec 17 22:03:44 2011 +0100 @@ -949,7 +949,7 @@ // ------------------------------------------------------------------ // ciEnv::register_method -void ciEnv::register_method(ciMethod* target, +nmethod* ciEnv::register_method(ciMethod* target, int entry_bci, CodeOffsets* offsets, int orig_pc_offset, @@ -1060,43 +1060,41 @@ // (Put nm into the task handle *before* publishing to the Java heap.) if (task() != NULL) task()->set_code(nm); - if (install_code) { - if (entry_bci == InvocationEntryBci) { - if (TieredCompilation) { - // If there is an old version we're done with it - nmethod* old = method->code(); - if (TraceMethodReplacement && old != NULL) { - ResourceMark rm; - char *method_name = method->name_and_sig_as_C_string(); - tty->print_cr("Replacing method %s", method_name); - } - if (old != NULL ) { - old->make_not_entrant(); - } - } - if (TraceNMethodInstalls ) { + if (entry_bci == InvocationEntryBci) { + if (TieredCompilation) { + // If there is an old version we're done with it + nmethod* old = method->code(); + if (TraceMethodReplacement && old != NULL) { ResourceMark rm; char *method_name = method->name_and_sig_as_C_string(); - ttyLocker ttyl; - tty->print_cr("Installing method (%d) %s ", - comp_level, - method_name); + tty->print_cr("Replacing method %s", method_name); + } + if (old != NULL ) { + old->make_not_entrant(); } - // Allow the code to be executed - method->set_code(method, nm); - } else { - if (TraceNMethodInstalls ) { - ResourceMark rm; - char *method_name = method->name_and_sig_as_C_string(); - ttyLocker ttyl; - tty->print_cr("Installing osr method (%d) %s @ %d", - comp_level, - method_name, - entry_bci); - } - instanceKlass::cast(method->method_holder())->add_osr_nmethod(nm); + } + if (TraceNMethodInstalls ) { + ResourceMark rm; + char *method_name = method->name_and_sig_as_C_string(); + ttyLocker ttyl; + tty->print_cr("Installing method (%d) %s ", + comp_level, + method_name); + } + // Allow the code to be executed + method->set_code(method, nm); + } else { + if (TraceNMethodInstalls ) { + ResourceMark rm; + char *method_name = method->name_and_sig_as_C_string(); + ttyLocker ttyl; + tty->print_cr("Installing osr method (%d) %s @ %d", + comp_level, + method_name, + entry_bci); + } + instanceKlass::cast(method->method_holder())->add_osr_nmethod(nm); - } } } } diff -r 04b9a2566eec -r 82af018d61db src/share/vm/code/pcDesc.hpp --- a/src/share/vm/code/pcDesc.hpp Sat Dec 17 21:40:27 2011 +0100 +++ b/src/share/vm/code/pcDesc.hpp Sat Dec 17 22:03:44 2011 +0100 @@ -72,7 +72,7 @@ }; // Flags - bool rethrow_exception() const { return _flags & PCDESC_rethrow_exception; } + bool rethrow_exception() const { return (_flags & PCDESC_rethrow_exception) != 0; } void set_rethrow_exception(bool z) { set_flag(PCDESC_rethrow_exception, z); } bool should_reexecute() const { return (_flags & PCDESC_reexecute) != 0; } void set_should_reexecute(bool z) { set_flag(PCDESC_reexecute, z); } diff -r 04b9a2566eec -r 82af018d61db src/share/vm/interpreter/rewriter.cpp --- a/src/share/vm/interpreter/rewriter.cpp Sat Dec 17 21:40:27 2011 +0100 +++ b/src/share/vm/interpreter/rewriter.cpp Sat Dec 17 22:03:44 2011 +0100 @@ -291,13 +291,6 @@ #endif break; } - case Bytecodes::_fast_linearswitch: - case Bytecodes::_fast_binaryswitch: { -#ifndef CC_INTERP - (*bcp) = Bytecodes::_lookupswitch; -#endif - break; - } case Bytecodes::_getstatic : // fall through case Bytecodes::_putstatic : // fall through case Bytecodes::_getfield : // fall through diff -r 04b9a2566eec -r 82af018d61db src/share/vm/runtime/fieldDescriptor.hpp --- a/src/share/vm/runtime/fieldDescriptor.hpp Sat Dec 17 21:40:27 2011 +0100 +++ b/src/share/vm/runtime/fieldDescriptor.hpp Sat Dec 17 22:03:44 2011 +0100 @@ -61,6 +61,7 @@ Symbol* signature() const { return field()->signature(_cp); } + int signature_index() const { return field()->signature_index(); } klassOop field_holder() const { return _cp->pool_holder(); } constantPoolOop constants() const { return _cp(); } AccessFlags access_flags() const { return _access_flags; }