hotspot/src/share/vm/interpreter/linkResolver.hpp
changeset 13728 882756847a04
parent 13391 30245956af37
child 13929 8da0dc50a6e4
equal deleted inserted replaced
13727:caf5eb7dd4a7 13728:882756847a04
     1 /*
     1 /*
     2  * Copyright (c) 1997, 2011, Oracle and/or its affiliates. All rights reserved.
     2  * Copyright (c) 1997, 2012, Oracle and/or its affiliates. All rights reserved.
     3  * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
     3  * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
     4  *
     4  *
     5  * This code is free software; you can redistribute it and/or modify it
     5  * This code is free software; you can redistribute it and/or modify it
     6  * under the terms of the GNU General Public License version 2 only, as
     6  * under the terms of the GNU General Public License version 2 only, as
     7  * published by the Free Software Foundation.
     7  * published by the Free Software Foundation.
    23  */
    23  */
    24 
    24 
    25 #ifndef SHARE_VM_INTERPRETER_LINKRESOLVER_HPP
    25 #ifndef SHARE_VM_INTERPRETER_LINKRESOLVER_HPP
    26 #define SHARE_VM_INTERPRETER_LINKRESOLVER_HPP
    26 #define SHARE_VM_INTERPRETER_LINKRESOLVER_HPP
    27 
    27 
    28 #include "oops/methodOop.hpp"
    28 #include "oops/method.hpp"
    29 #include "utilities/top.hpp"
    29 #include "utilities/top.hpp"
    30 
    30 
    31 // All the necessary definitions for run-time link resolution.
    31 // All the necessary definitions for run-time link resolution.
    32 
    32 
    33 // LinkInfo & its subclasses provide all the information gathered
    33 // LinkInfo & its subclasses provide all the information gathered
    92   methodHandle selected_method() const           { return _selected_method; }
    92   methodHandle selected_method() const           { return _selected_method; }
    93   Handle       resolved_appendix() const         { return _resolved_appendix; }
    93   Handle       resolved_appendix() const         { return _resolved_appendix; }
    94 
    94 
    95   BasicType    result_type() const               { return selected_method()->result_type(); }
    95   BasicType    result_type() const               { return selected_method()->result_type(); }
    96   bool         has_vtable_index() const          { return _vtable_index >= 0; }
    96   bool         has_vtable_index() const          { return _vtable_index >= 0; }
    97   bool         is_statically_bound() const       { return _vtable_index == methodOopDesc::nonvirtual_vtable_index; }
    97   bool         is_statically_bound() const       { return _vtable_index == Method::nonvirtual_vtable_index; }
    98   int          vtable_index() const {
    98   int          vtable_index() const {
    99     // Even for interface calls the vtable index could be non-negative.
    99     // Even for interface calls the vtable index could be non-negative.
   100     // See CallInfo::set_interface.
   100     // See CallInfo::set_interface.
   101     assert(has_vtable_index() || is_statically_bound(), "");
   101     assert(has_vtable_index() || is_statically_bound(), "");
   102     return _vtable_index;
   102     return _vtable_index;