_Интринсик_ или _intrinsic-функция_ — функция, которую JIT-компилятор может встроить вместо вызова Java- и JNI-кода с целью оптимизации. Важный вывод из этого — _intrinsic-функции_ не доступны в режиме интерпретатора. По умолчанию в HotSpot используется два JIT-компилятора C1 и C2, таким образом, может быть доступна реализация _intrinsic-функции_ для каждого из JIT-компиляторов. Различия в реализации _intrinsic-функций_ для разных JIT-компиляторов обуславливаются различным _внутренним представлением_ кода (_intermediate representation — IR_).
В HotSpot реализовано несколько сотен _интринсиков_ (их количество растёт от релиза к релизу). Описание всех _intrinsic-функций_ можно найти в исходниках OpenJDK в файле `vmSymbols.hpp`. Ниже приведены полные списки _интринсиков_ для JDK 7 ([vmSymbols.hpp][1]), JDK 8 ([vmSymbols.hpp][2]), JDK 9 ([vmSymbols.hpp][3]) и JDK 10 ([vmSymbols.hpp][4]).
[Читать дальше →][5]
[1]:
http://hg.openjdk.java.net/jdk7u/jdk7u/hotspot/file/f0e7f5612512/src/share/vm/classfile/vmSymbols.hpp
[2]:
http://hg.openjdk.java.net/jdk8u/jdk8u/hotspot/file/de8045923ad2/src/share/vm/classfile/vmSymbols.hpp
[3]:
http://hg.openjdk.java.net/jdk9/jdk9/hotspot/file/b756e7a2ec33/src/share/vm/classfile/vmSymbols.hpp
[4]:
http://hg.openjdk.java.net/jdk10/jdk10/hotspot/file/5ab7a67bc155/src/share/vm/classfile/vmSymbols.hpp
[5]:
https://habrahabr.ru/post/352086/?utm_source=habrahabr&utm_medium=rss&utm_campaign=352086#habracut