comparison src/share/vm/shark/sharkTopLevelBlock.cpp @ 7601:606eada1bf86

8005820: Shark: enable JSR292 support Reviewed-by: twisti Contributed-by: Roman Kennke <rkennke@redhat.com>
author twisti
date Fri, 11 Jan 2013 16:47:23 -0800
parents c566b81b3323
children de6a9e811145
comparison
equal deleted inserted replaced
7600:c095a7f289aa 7601:606eada1bf86
111 case Bytecodes::_invokevirtual: 111 case Bytecodes::_invokevirtual:
112 case Bytecodes::_invokeinterface: 112 case Bytecodes::_invokeinterface:
113 ciSignature* sig; 113 ciSignature* sig;
114 method = iter()->get_method(will_link, &sig); 114 method = iter()->get_method(will_link, &sig);
115 assert(will_link, "typeflow responsibility"); 115 assert(will_link, "typeflow responsibility");
116 116 // We can't compile calls to method handle intrinsics, because we use
117 // the interpreter entry points and they expect the top frame to be an
118 // interpreter frame. We need to implement the intrinsics for Shark.
119 if (method->is_method_handle_intrinsic() || method->is_compiled_lambda_form()) {
120 if (SharkPerformanceWarnings) {
121 warning("JSR292 optimization not yet implemented in Shark");
122 }
123 set_trap(
124 Deoptimization::make_trap_request(
125 Deoptimization::Reason_unhandled,
126 Deoptimization::Action_make_not_compilable), bci());
127 return;
128 }
117 if (!method->holder()->is_linked()) { 129 if (!method->holder()->is_linked()) {
118 set_trap( 130 set_trap(
119 Deoptimization::make_trap_request( 131 Deoptimization::make_trap_request(
120 Deoptimization::Reason_uninitialized, 132 Deoptimization::Reason_uninitialized,
121 Deoptimization::Action_reinterpret), bci()); 133 Deoptimization::Action_reinterpret), bci());
156 Deoptimization::Reason_unhandled, 168 Deoptimization::Reason_unhandled,
157 Deoptimization::Action_reinterpret), bci()); 169 Deoptimization::Action_reinterpret), bci());
158 return; 170 return;
159 } 171 }
160 break; 172 break;
173 case Bytecodes::_invokedynamic:
174 case Bytecodes::_invokehandle:
175 if (SharkPerformanceWarnings) {
176 warning("JSR292 optimization not yet implemented in Shark");
177 }
178 set_trap(
179 Deoptimization::make_trap_request(
180 Deoptimization::Reason_unhandled,
181 Deoptimization::Action_make_not_compilable), bci());
182 return;
161 } 183 }
162 } 184 }
163 185
164 // Trap if typeflow trapped (and we didn't before) 186 // Trap if typeflow trapped (and we didn't before)
165 if (ciblock()->has_trap()) { 187 if (ciblock()->has_trap()) {