src/jdk.internal.vm.ci/share/classes/jdk.vm.ci.hotspot/src/jdk/vm/ci/hotspot/CompilerToVM.java
changeset 48480 614068b0ddd7
parent 47793 3dcd54513db1
child 48826 c4d9d1b08e2e
equal deleted inserted replaced
48479:7b5c930b878c 48480:614068b0ddd7
   133     native HotSpotResolvedJavaMethodImpl findUniqueConcreteMethod(HotSpotResolvedObjectTypeImpl actualHolderType, HotSpotResolvedJavaMethodImpl method);
   133     native HotSpotResolvedJavaMethodImpl findUniqueConcreteMethod(HotSpotResolvedObjectTypeImpl actualHolderType, HotSpotResolvedJavaMethodImpl method);
   134 
   134 
   135     /**
   135     /**
   136      * Gets the implementor for the interface class {@code type}.
   136      * Gets the implementor for the interface class {@code type}.
   137      *
   137      *
   138      * @return the implementor if there is a single implementor, 0 if there is no implementor, or
   138      * @return the implementor if there is a single implementor, {@code null} if there is no
   139      *         {@code type} itself if there is more than one implementor
   139      *         implementor, or {@code type} itself if there is more than one implementor
       
   140      * @throws IllegalArgumentException if type is not an interface type
   140      */
   141      */
   141     native HotSpotResolvedObjectTypeImpl getImplementor(HotSpotResolvedObjectTypeImpl type);
   142     native HotSpotResolvedObjectTypeImpl getImplementor(HotSpotResolvedObjectTypeImpl type);
   142 
   143 
   143     /**
   144     /**
   144      * Determines if {@code method} is ignored by security stack walks.
   145      * Determines if {@code method} is ignored by security stack walks.
   254      * does nothing.
   255      * does nothing.
   255      */
   256      */
   256     native void resolveInvokeHandleInPool(HotSpotConstantPool constantPool, int cpi);
   257     native void resolveInvokeHandleInPool(HotSpotConstantPool constantPool, int cpi);
   257 
   258 
   258     /**
   259     /**
   259      * If {@code cpi} denotes an entry representing a resolved dynamic adapter
   260      * If {@code cpi} denotes an entry representing a resolved dynamic adapter (see
   260      * (see {@code resolveInvokeDynamicInPool} and {@code resolveInvokeHandleInPool}),
   261      * {@code resolveInvokeDynamicInPool} and {@code resolveInvokeHandleInPool}), return the opcode
   261      * return the opcode of the instruction for which the resolution was performed
   262      * of the instruction for which the resolution was performed ({@code invokedynamic} or
   262      * ({@code invokedynamic} or {@code invokevirtual}}, or {@code -1} otherwise.
   263      * {@code invokevirtual}}, or {@code -1} otherwise.
   263      */
   264      */
   264     native int isResolvedInvokeHandleInPool(HotSpotConstantPool constantPool, int cpi);
   265     native int isResolvedInvokeHandleInPool(HotSpotConstantPool constantPool, int cpi);
   265 
       
   266 
   266 
   267     /**
   267     /**
   268      * Gets the list of type names (in the format of {@link JavaType#getName()}) denoting the
   268      * Gets the list of type names (in the format of {@link JavaType#getName()}) denoting the
   269      * classes that define signature polymorphic methods.
   269      * classes that define signature polymorphic methods.
   270      */
   270      */
   386     native HotSpotResolvedJavaMethodImpl resolveMethod(HotSpotResolvedObjectTypeImpl exactReceiver, HotSpotResolvedJavaMethodImpl method, HotSpotResolvedObjectTypeImpl caller);
   386     native HotSpotResolvedJavaMethodImpl resolveMethod(HotSpotResolvedObjectTypeImpl exactReceiver, HotSpotResolvedJavaMethodImpl method, HotSpotResolvedObjectTypeImpl caller);
   387 
   387 
   388     /**
   388     /**
   389      * Gets the static initializer of {@code type}.
   389      * Gets the static initializer of {@code type}.
   390      *
   390      *
   391      * @return 0 if {@code type} has no static initializer
   391      * @return {@code null} if {@code type} has no static initializer
   392      */
   392      */
   393     native HotSpotResolvedJavaMethodImpl getClassInitializer(HotSpotResolvedObjectTypeImpl type);
   393     native HotSpotResolvedJavaMethodImpl getClassInitializer(HotSpotResolvedObjectTypeImpl type);
   394 
   394 
   395     /**
   395     /**
   396      * Determines if {@code type} or any of its currently loaded subclasses overrides
   396      * Determines if {@code type} or any of its currently loaded subclasses overrides
   466      * @return 0 if {@code method} does not have a local variable table
   466      * @return 0 if {@code method} does not have a local variable table
   467      */
   467      */
   468     native long getLocalVariableTableStart(HotSpotResolvedJavaMethodImpl method);
   468     native long getLocalVariableTableStart(HotSpotResolvedJavaMethodImpl method);
   469 
   469 
   470     /**
   470     /**
   471      * Sets flags on {@code method} indicating that it should never be inlined or compiled by the VM.
   471      * Sets flags on {@code method} indicating that it should never be inlined or compiled by the
       
   472      * VM.
   472      */
   473      */
   473     native void setNotInlinableOrCompilable(HotSpotResolvedJavaMethodImpl method);
   474     native void setNotInlinableOrCompilable(HotSpotResolvedJavaMethodImpl method);
   474 
   475 
   475     /**
   476     /**
   476      * Invalidates the profiling information for {@code method} and (re)initializes it such that
   477      * Invalidates the profiling information for {@code method} and (re)initializes it such that