src/share/vm/jvmci/jvmciEnv.cpp
Index Unified diffs Context diffs Sdiffs Patch New Old Previous File Next File 8073191-work Sdiff src/share/vm/jvmci

src/share/vm/jvmci/jvmciEnv.cpp

Print this page




 273 }
 274 
 275 // ------------------------------------------------------------------
 276 // Get a field by index from a klass's constant pool.
 277 void JVMCIEnv::get_field_by_index(instanceKlassHandle accessor, fieldDescriptor& fd, int index) {
 278   ResourceMark rm;
 279   return get_field_by_index_impl(accessor, fd, index);
 280 }
 281 
 282 // ------------------------------------------------------------------
 283 // Perform an appropriate method lookup based on accessor, holder,
 284 // name, signature, and bytecode.
 285 methodHandle JVMCIEnv::lookup_method(instanceKlassHandle h_accessor,
 286                                instanceKlassHandle h_holder,
 287                                Symbol*       name,
 288                                Symbol*       sig,
 289                                Bytecodes::Code bc) {
 290   JVMCI_EXCEPTION_CONTEXT;
 291   LinkResolver::check_klass_accessability(h_accessor, h_holder, KILL_COMPILE_ON_FATAL_(NULL));
 292   methodHandle dest_method;
 293   LinkInfo link_info(h_holder, name, sig, h_accessor, /*check_access*/true);
 294   switch (bc) {
 295   case Bytecodes::_invokestatic:
 296     dest_method =
 297       LinkResolver::resolve_static_call_or_null(link_info);
 298     break;
 299   case Bytecodes::_invokespecial:
 300     dest_method =
 301       LinkResolver::resolve_special_call_or_null(link_info);
 302     break;
 303   case Bytecodes::_invokeinterface:
 304     dest_method =
 305       LinkResolver::linktime_resolve_interface_method_or_null(link_info);
 306     break;
 307   case Bytecodes::_invokevirtual:
 308     dest_method =
 309       LinkResolver::linktime_resolve_virtual_method_or_null(link_info);
 310     break;
 311   default: ShouldNotReachHere();
 312   }
 313 




 273 }
 274 
 275 // ------------------------------------------------------------------
 276 // Get a field by index from a klass's constant pool.
 277 void JVMCIEnv::get_field_by_index(instanceKlassHandle accessor, fieldDescriptor& fd, int index) {
 278   ResourceMark rm;
 279   return get_field_by_index_impl(accessor, fd, index);
 280 }
 281 
 282 // ------------------------------------------------------------------
 283 // Perform an appropriate method lookup based on accessor, holder,
 284 // name, signature, and bytecode.
 285 methodHandle JVMCIEnv::lookup_method(instanceKlassHandle h_accessor,
 286                                instanceKlassHandle h_holder,
 287                                Symbol*       name,
 288                                Symbol*       sig,
 289                                Bytecodes::Code bc) {
 290   JVMCI_EXCEPTION_CONTEXT;
 291   LinkResolver::check_klass_accessability(h_accessor, h_holder, KILL_COMPILE_ON_FATAL_(NULL));
 292   methodHandle dest_method;
 293   LinkInfo link_info(h_holder, name, sig, h_accessor, NULL, /*check_access*/true);
 294   switch (bc) {
 295   case Bytecodes::_invokestatic:
 296     dest_method =
 297       LinkResolver::resolve_static_call_or_null(link_info);
 298     break;
 299   case Bytecodes::_invokespecial:
 300     dest_method =
 301       LinkResolver::resolve_special_call_or_null(link_info);
 302     break;
 303   case Bytecodes::_invokeinterface:
 304     dest_method =
 305       LinkResolver::linktime_resolve_interface_method_or_null(link_info);
 306     break;
 307   case Bytecodes::_invokevirtual:
 308     dest_method =
 309       LinkResolver::linktime_resolve_virtual_method_or_null(link_info);
 310     break;
 311   default: ShouldNotReachHere();
 312   }
 313 


src/share/vm/jvmci/jvmciEnv.cpp
Index Unified diffs Context diffs Sdiffs Patch New Old Previous File Next File