1 /*
2 * Copyright (c) 2020, 2025, Oracle and/or its affiliates. All rights reserved.
3 * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
4 *
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
7 * published by the Free Software Foundation.
8 *
9 * This code is distributed in the hope that it will be useful, but WITHOUT
10 * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
11 * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
12 * version 2 for more details (a copy is included in the LICENSE file that
13 * accompanied this code).
14 *
15 * You should have received a copy of the GNU General Public License version
16 * 2 along with this work; if not, write to the Free Software Foundation,
17 * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
18 *
19 * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
20 * or visit www.oracle.com if you need additional information or have any
21 * questions.
22 *
248 case vmIntrinsics::_countPositives:
249 case vmIntrinsics::_Reference_get0:
250 case vmIntrinsics::_Continuation_doYield:
251 case vmIntrinsics::_Continuation_enterSpecial:
252 case vmIntrinsics::_Continuation_pin:
253 case vmIntrinsics::_Continuation_unpin:
254 break;
255 default:
256 return true;
257 }
258 }
259
260 switch (id) {
261 case vmIntrinsics::_isInstance:
262 case vmIntrinsics::_isAssignableFrom:
263 case vmIntrinsics::_isHidden:
264 case vmIntrinsics::_getSuperclass:
265 case vmIntrinsics::_Class_cast:
266 case vmIntrinsics::_getLength:
267 case vmIntrinsics::_newArray:
268 case vmIntrinsics::_getClass:
269 if (!InlineClassNatives) return true;
270 break;
271 case vmIntrinsics::_currentCarrierThread:
272 case vmIntrinsics::_currentThread:
273 if (!InlineThreadNatives) return true;
274 break;
275 case vmIntrinsics::_setCurrentThread:
276 case vmIntrinsics::_scopedValueCache:
277 case vmIntrinsics::_setScopedValueCache:
278 case vmIntrinsics::_floatToRawIntBits:
279 case vmIntrinsics::_intBitsToFloat:
280 case vmIntrinsics::_doubleToRawLongBits:
281 case vmIntrinsics::_longBitsToDouble:
282 case vmIntrinsics::_ceil:
283 case vmIntrinsics::_floor:
284 case vmIntrinsics::_rint:
285 case vmIntrinsics::_dabs:
286 case vmIntrinsics::_fabs:
287 case vmIntrinsics::_iabs:
328 case vmIntrinsics::_float16ToFloat:
329 if (!InlineIntrinsics) return true;
330 break;
331 case vmIntrinsics::_arraycopy:
332 if (!InlineArrayCopy) return true;
333 break;
334 case vmIntrinsics::_updateCRC32:
335 case vmIntrinsics::_updateBytesCRC32:
336 case vmIntrinsics::_updateByteBufferCRC32:
337 if (!UseCRC32Intrinsics) return true;
338 break;
339 case vmIntrinsics::_getReference:
340 case vmIntrinsics::_getBoolean:
341 case vmIntrinsics::_getByte:
342 case vmIntrinsics::_getShort:
343 case vmIntrinsics::_getChar:
344 case vmIntrinsics::_getInt:
345 case vmIntrinsics::_getLong:
346 case vmIntrinsics::_getFloat:
347 case vmIntrinsics::_getDouble:
348 case vmIntrinsics::_putReference:
349 case vmIntrinsics::_putBoolean:
350 case vmIntrinsics::_putByte:
351 case vmIntrinsics::_putShort:
352 case vmIntrinsics::_putChar:
353 case vmIntrinsics::_putInt:
354 case vmIntrinsics::_putLong:
355 case vmIntrinsics::_putFloat:
356 case vmIntrinsics::_putDouble:
357 case vmIntrinsics::_getReferenceVolatile:
358 case vmIntrinsics::_getBooleanVolatile:
359 case vmIntrinsics::_getByteVolatile:
360 case vmIntrinsics::_getShortVolatile:
361 case vmIntrinsics::_getCharVolatile:
362 case vmIntrinsics::_getIntVolatile:
363 case vmIntrinsics::_getLongVolatile:
364 case vmIntrinsics::_getFloatVolatile:
365 case vmIntrinsics::_getDoubleVolatile:
366 case vmIntrinsics::_putReferenceVolatile:
367 case vmIntrinsics::_putBooleanVolatile:
368 case vmIntrinsics::_putByteVolatile:
369 case vmIntrinsics::_putShortVolatile:
370 case vmIntrinsics::_putCharVolatile:
371 case vmIntrinsics::_putIntVolatile:
372 case vmIntrinsics::_putLongVolatile:
373 case vmIntrinsics::_putFloatVolatile:
374 case vmIntrinsics::_putDoubleVolatile:
375 case vmIntrinsics::_getReferenceAcquire:
376 case vmIntrinsics::_getBooleanAcquire:
399 case vmIntrinsics::_getLongOpaque:
400 case vmIntrinsics::_getFloatOpaque:
401 case vmIntrinsics::_getDoubleOpaque:
402 case vmIntrinsics::_putReferenceOpaque:
403 case vmIntrinsics::_putBooleanOpaque:
404 case vmIntrinsics::_putByteOpaque:
405 case vmIntrinsics::_putShortOpaque:
406 case vmIntrinsics::_putCharOpaque:
407 case vmIntrinsics::_putIntOpaque:
408 case vmIntrinsics::_putLongOpaque:
409 case vmIntrinsics::_putFloatOpaque:
410 case vmIntrinsics::_putDoubleOpaque:
411 case vmIntrinsics::_getAndAddInt:
412 case vmIntrinsics::_getAndAddLong:
413 case vmIntrinsics::_getAndSetInt:
414 case vmIntrinsics::_getAndSetLong:
415 case vmIntrinsics::_getAndSetReference:
416 case vmIntrinsics::_loadFence:
417 case vmIntrinsics::_storeFence:
418 case vmIntrinsics::_fullFence:
419 case vmIntrinsics::_compareAndSetLong:
420 case vmIntrinsics::_weakCompareAndSetLong:
421 case vmIntrinsics::_weakCompareAndSetLongPlain:
422 case vmIntrinsics::_weakCompareAndSetLongAcquire:
423 case vmIntrinsics::_weakCompareAndSetLongRelease:
424 case vmIntrinsics::_compareAndSetInt:
425 case vmIntrinsics::_weakCompareAndSetInt:
426 case vmIntrinsics::_weakCompareAndSetIntPlain:
427 case vmIntrinsics::_weakCompareAndSetIntAcquire:
428 case vmIntrinsics::_weakCompareAndSetIntRelease:
429 case vmIntrinsics::_compareAndSetReference:
430 case vmIntrinsics::_weakCompareAndSetReference:
431 case vmIntrinsics::_weakCompareAndSetReferencePlain:
432 case vmIntrinsics::_weakCompareAndSetReferenceAcquire:
433 case vmIntrinsics::_weakCompareAndSetReferenceRelease:
434 case vmIntrinsics::_compareAndExchangeInt:
435 case vmIntrinsics::_compareAndExchangeIntAcquire:
436 case vmIntrinsics::_compareAndExchangeIntRelease:
437 case vmIntrinsics::_compareAndExchangeLong:
438 case vmIntrinsics::_compareAndExchangeLongAcquire:
|
1 /*
2 * Copyright (c) 2020, 2026, Oracle and/or its affiliates. All rights reserved.
3 * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
4 *
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
7 * published by the Free Software Foundation.
8 *
9 * This code is distributed in the hope that it will be useful, but WITHOUT
10 * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
11 * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
12 * version 2 for more details (a copy is included in the LICENSE file that
13 * accompanied this code).
14 *
15 * You should have received a copy of the GNU General Public License version
16 * 2 along with this work; if not, write to the Free Software Foundation,
17 * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
18 *
19 * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
20 * or visit www.oracle.com if you need additional information or have any
21 * questions.
22 *
248 case vmIntrinsics::_countPositives:
249 case vmIntrinsics::_Reference_get0:
250 case vmIntrinsics::_Continuation_doYield:
251 case vmIntrinsics::_Continuation_enterSpecial:
252 case vmIntrinsics::_Continuation_pin:
253 case vmIntrinsics::_Continuation_unpin:
254 break;
255 default:
256 return true;
257 }
258 }
259
260 switch (id) {
261 case vmIntrinsics::_isInstance:
262 case vmIntrinsics::_isAssignableFrom:
263 case vmIntrinsics::_isHidden:
264 case vmIntrinsics::_getSuperclass:
265 case vmIntrinsics::_Class_cast:
266 case vmIntrinsics::_getLength:
267 case vmIntrinsics::_newArray:
268 case vmIntrinsics::_newNullRestrictedNonAtomicArray:
269 case vmIntrinsics::_newNullRestrictedAtomicArray:
270 case vmIntrinsics::_newNullableAtomicArray:
271 case vmIntrinsics::_isFlatArray:
272 case vmIntrinsics::_isNullRestrictedArray:
273 case vmIntrinsics::_isAtomicArray:
274 case vmIntrinsics::_getClass:
275 if (!InlineClassNatives) return true;
276 break;
277 case vmIntrinsics::_currentCarrierThread:
278 case vmIntrinsics::_currentThread:
279 if (!InlineThreadNatives) return true;
280 break;
281 case vmIntrinsics::_setCurrentThread:
282 case vmIntrinsics::_scopedValueCache:
283 case vmIntrinsics::_setScopedValueCache:
284 case vmIntrinsics::_floatToRawIntBits:
285 case vmIntrinsics::_intBitsToFloat:
286 case vmIntrinsics::_doubleToRawLongBits:
287 case vmIntrinsics::_longBitsToDouble:
288 case vmIntrinsics::_ceil:
289 case vmIntrinsics::_floor:
290 case vmIntrinsics::_rint:
291 case vmIntrinsics::_dabs:
292 case vmIntrinsics::_fabs:
293 case vmIntrinsics::_iabs:
334 case vmIntrinsics::_float16ToFloat:
335 if (!InlineIntrinsics) return true;
336 break;
337 case vmIntrinsics::_arraycopy:
338 if (!InlineArrayCopy) return true;
339 break;
340 case vmIntrinsics::_updateCRC32:
341 case vmIntrinsics::_updateBytesCRC32:
342 case vmIntrinsics::_updateByteBufferCRC32:
343 if (!UseCRC32Intrinsics) return true;
344 break;
345 case vmIntrinsics::_getReference:
346 case vmIntrinsics::_getBoolean:
347 case vmIntrinsics::_getByte:
348 case vmIntrinsics::_getShort:
349 case vmIntrinsics::_getChar:
350 case vmIntrinsics::_getInt:
351 case vmIntrinsics::_getLong:
352 case vmIntrinsics::_getFloat:
353 case vmIntrinsics::_getDouble:
354 case vmIntrinsics::_getFlatValue:
355 case vmIntrinsics::_putReference:
356 case vmIntrinsics::_putBoolean:
357 case vmIntrinsics::_putByte:
358 case vmIntrinsics::_putShort:
359 case vmIntrinsics::_putChar:
360 case vmIntrinsics::_putInt:
361 case vmIntrinsics::_putLong:
362 case vmIntrinsics::_putFloat:
363 case vmIntrinsics::_putDouble:
364 case vmIntrinsics::_putFlatValue:
365 case vmIntrinsics::_getReferenceVolatile:
366 case vmIntrinsics::_getBooleanVolatile:
367 case vmIntrinsics::_getByteVolatile:
368 case vmIntrinsics::_getShortVolatile:
369 case vmIntrinsics::_getCharVolatile:
370 case vmIntrinsics::_getIntVolatile:
371 case vmIntrinsics::_getLongVolatile:
372 case vmIntrinsics::_getFloatVolatile:
373 case vmIntrinsics::_getDoubleVolatile:
374 case vmIntrinsics::_putReferenceVolatile:
375 case vmIntrinsics::_putBooleanVolatile:
376 case vmIntrinsics::_putByteVolatile:
377 case vmIntrinsics::_putShortVolatile:
378 case vmIntrinsics::_putCharVolatile:
379 case vmIntrinsics::_putIntVolatile:
380 case vmIntrinsics::_putLongVolatile:
381 case vmIntrinsics::_putFloatVolatile:
382 case vmIntrinsics::_putDoubleVolatile:
383 case vmIntrinsics::_getReferenceAcquire:
384 case vmIntrinsics::_getBooleanAcquire:
407 case vmIntrinsics::_getLongOpaque:
408 case vmIntrinsics::_getFloatOpaque:
409 case vmIntrinsics::_getDoubleOpaque:
410 case vmIntrinsics::_putReferenceOpaque:
411 case vmIntrinsics::_putBooleanOpaque:
412 case vmIntrinsics::_putByteOpaque:
413 case vmIntrinsics::_putShortOpaque:
414 case vmIntrinsics::_putCharOpaque:
415 case vmIntrinsics::_putIntOpaque:
416 case vmIntrinsics::_putLongOpaque:
417 case vmIntrinsics::_putFloatOpaque:
418 case vmIntrinsics::_putDoubleOpaque:
419 case vmIntrinsics::_getAndAddInt:
420 case vmIntrinsics::_getAndAddLong:
421 case vmIntrinsics::_getAndSetInt:
422 case vmIntrinsics::_getAndSetLong:
423 case vmIntrinsics::_getAndSetReference:
424 case vmIntrinsics::_loadFence:
425 case vmIntrinsics::_storeFence:
426 case vmIntrinsics::_fullFence:
427 case vmIntrinsics::_arrayInstanceBaseOffset:
428 case vmIntrinsics::_arrayInstanceIndexScale:
429 case vmIntrinsics::_arrayLayout:
430 case vmIntrinsics::_getFieldMap:
431 case vmIntrinsics::_compareAndSetLong:
432 case vmIntrinsics::_weakCompareAndSetLong:
433 case vmIntrinsics::_weakCompareAndSetLongPlain:
434 case vmIntrinsics::_weakCompareAndSetLongAcquire:
435 case vmIntrinsics::_weakCompareAndSetLongRelease:
436 case vmIntrinsics::_compareAndSetInt:
437 case vmIntrinsics::_weakCompareAndSetInt:
438 case vmIntrinsics::_weakCompareAndSetIntPlain:
439 case vmIntrinsics::_weakCompareAndSetIntAcquire:
440 case vmIntrinsics::_weakCompareAndSetIntRelease:
441 case vmIntrinsics::_compareAndSetReference:
442 case vmIntrinsics::_weakCompareAndSetReference:
443 case vmIntrinsics::_weakCompareAndSetReferencePlain:
444 case vmIntrinsics::_weakCompareAndSetReferenceAcquire:
445 case vmIntrinsics::_weakCompareAndSetReferenceRelease:
446 case vmIntrinsics::_compareAndExchangeInt:
447 case vmIntrinsics::_compareAndExchangeIntAcquire:
448 case vmIntrinsics::_compareAndExchangeIntRelease:
449 case vmIntrinsics::_compareAndExchangeLong:
450 case vmIntrinsics::_compareAndExchangeLongAcquire:
|