comparison src/share/vm/interpreter/interpreterRuntime.cpp @ 6224:56c4f88474b3

7087357: JSR 292: remove obsolete code after 7085860 Reviewed-by: kvn, never
author twisti
date Mon, 16 Jul 2012 11:14:41 -0700
parents e2fe93124108
children 9c9fb30d2b3b
comparison
equal deleted inserted replaced
6223:ed21db7b3fda 6224:56c4f88474b3
543 if (!uninitialized_static) { 543 if (!uninitialized_static) {
544 get_code = ((is_static) ? Bytecodes::_getstatic : Bytecodes::_getfield); 544 get_code = ((is_static) ? Bytecodes::_getstatic : Bytecodes::_getfield);
545 if (is_put || !info.access_flags().is_final()) { 545 if (is_put || !info.access_flags().is_final()) {
546 put_code = ((is_static) ? Bytecodes::_putstatic : Bytecodes::_putfield); 546 put_code = ((is_static) ? Bytecodes::_putstatic : Bytecodes::_putfield);
547 } 547 }
548 }
549
550 if (is_put && !is_static && klass->is_subclass_of(SystemDictionary::CallSite_klass()) && (info.name() == vmSymbols::target_name())) {
551 const jint direction = frame::interpreter_frame_expression_stack_direction();
552 Handle call_site (THREAD, *((oop*) thread->last_frame().interpreter_frame_tos_at(-1 * direction)));
553 Handle method_handle(THREAD, *((oop*) thread->last_frame().interpreter_frame_tos_at( 0 * direction)));
554 assert(call_site ->is_a(SystemDictionary::CallSite_klass()), "must be");
555 assert(method_handle->is_a(SystemDictionary::MethodHandle_klass()), "must be");
556
557 {
558 // Walk all nmethods depending on this call site.
559 MutexLocker mu(Compile_lock, thread);
560 Universe::flush_dependents_on(call_site, method_handle);
561 }
562
563 // Don't allow fast path for setting CallSite.target and sub-classes.
564 put_code = (Bytecodes::Code) 0;
565 } 548 }
566 549
567 cache_entry(thread)->set_field( 550 cache_entry(thread)->set_field(
568 get_code, 551 get_code,
569 put_code, 552 put_code,