250 * <a href="https://docs.oracle.com/javase/specs/jvms/se8/html/jvms-2.html#jvms-2.9">signature 251 * polymorphic</a> method at index {@code cpi} in {@code constantPool} is loaded and 252 * initialized. 253 * 254 * The behavior of this method is undefined if {@code cpi} does not denote an entry representing 255 * a signature polymorphic method. 256 */ 257 native void resolveInvokeHandleInPool(HotSpotConstantPool constantPool, int cpi); 258 259 /** 260 * Gets the resolved type denoted by the entry at index {@code cpi} in {@code constantPool}. 261 * 262 * The behavior of this method is undefined if {@code cpi} does not denote an entry representing 263 * a class. 264 * 265 * @throws LinkageError if resolution failed 266 */ 267 native HotSpotResolvedObjectTypeImpl resolveTypeInPool(HotSpotConstantPool constantPool, int cpi) throws LinkageError; 268 269 /** 270 * Looks up and attempts to resolve the {@code JVM_CONSTANT_Field} entry at index {@code cpi} in 271 * {@code constantPool}. The values returned in {@code info} are: 272 * 273 * <pre> 274 * [(int) flags, // only valid if field is resolved 275 * (int) offset] // only valid if field is resolved 276 * </pre> 277 * 278 * The behavior of this method is undefined if {@code cpi} does not denote a 279 * {@code JVM_CONSTANT_Field} entry. 280 * 281 * @param info an array in which the details of the field are returned 282 * @return the type defining the field if resolution is successful, 0 otherwise 283 */ 284 native HotSpotResolvedObjectTypeImpl resolveFieldInPool(HotSpotConstantPool constantPool, int cpi, byte opcode, long[] info); 285 286 /** 287 * Converts {@code cpci} from an index into the cache for {@code constantPool} to an index 288 * directly into {@code constantPool}. 289 * 290 * The behavior of this method is undefined if {@code ccpi} is an invalid constant pool cache 291 * index. 292 */ 293 native int constantPoolRemapInstructionOperandFromCache(HotSpotConstantPool constantPool, int cpci); 294 295 /** 296 * Gets the appendix object (if any) associated with the entry at index {@code cpi} in 297 * {@code constantPool}. 298 */ 299 native Object lookupAppendixInPool(HotSpotConstantPool constantPool, int cpi); 300 301 /** 302 * Installs the result of a compilation into the code cache. 303 * 304 * @param target the target where this code should be installed | 250 * <a href="https://docs.oracle.com/javase/specs/jvms/se8/html/jvms-2.html#jvms-2.9">signature 251 * polymorphic</a> method at index {@code cpi} in {@code constantPool} is loaded and 252 * initialized. 253 * 254 * The behavior of this method is undefined if {@code cpi} does not denote an entry representing 255 * a signature polymorphic method. 256 */ 257 native void resolveInvokeHandleInPool(HotSpotConstantPool constantPool, int cpi); 258 259 /** 260 * Gets the resolved type denoted by the entry at index {@code cpi} in {@code constantPool}. 261 * 262 * The behavior of this method is undefined if {@code cpi} does not denote an entry representing 263 * a class. 264 * 265 * @throws LinkageError if resolution failed 266 */ 267 native HotSpotResolvedObjectTypeImpl resolveTypeInPool(HotSpotConstantPool constantPool, int cpi) throws LinkageError; 268 269 /** 270 * Looks up and attempts to resolve the {@code JVM_CONSTANT_Field} entry for at index {@code cpi} in 271 * {@code constantPool}. For some opcodes, checks are performed that require the {@code method} 272 * that contains {@code opcode} to be specified. The values returned in {@code info} are: 273 * 274 * <pre> 275 * [(int) flags, // only valid if field is resolved 276 * (int) offset] // only valid if field is resolved 277 * </pre> 278 * 279 * The behavior of this method is undefined if {@code cpi} does not denote a 280 * {@code JVM_CONSTANT_Field} entry. 281 * 282 * @param info an array in which the details of the field are returned 283 * @return the type defining the field if resolution is successful, 0 otherwise 284 */ 285 native HotSpotResolvedObjectTypeImpl resolveFieldInPool(HotSpotConstantPool constantPool, int cpi, HotSpotResolvedJavaMethodImpl method, byte opcode, long[] info); 286 287 /** 288 * Converts {@code cpci} from an index into the cache for {@code constantPool} to an index 289 * directly into {@code constantPool}. 290 * 291 * The behavior of this method is undefined if {@code ccpi} is an invalid constant pool cache 292 * index. 293 */ 294 native int constantPoolRemapInstructionOperandFromCache(HotSpotConstantPool constantPool, int cpci); 295 296 /** 297 * Gets the appendix object (if any) associated with the entry at index {@code cpi} in 298 * {@code constantPool}. 299 */ 300 native Object lookupAppendixInPool(HotSpotConstantPool constantPool, int cpi); 301 302 /** 303 * Installs the result of a compilation into the code cache. 304 * 305 * @param target the target where this code should be installed |