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
|
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, HotSpotResolvedJavaMethodImpl method, 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
|