Mercurial > hg > graal-compiler
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()) { |