Add `CALL_INTRINSIC` instruction.

markshannon · GitHub

We have a number of instructions that are complicated and executed fairly rarely. For example MAP_KEYS, CHECK_EG_MATCH, CLEANUP_THROW.
These bulk out the interpreter, possibly slowing things down.
We should move code from these into helper functions, which can be called though a table from CALL_INTRINSIC instruction.

The CALL_INTRINSIC instruction also provides a means for contributors to add new functionality without a deep understanding of the compiler.

Candidates for moving into CALL_INTRINSIC are:

SETUP_ANNOTATIONS

LOAD_BUILD_CLASS

MATCH_KEYS

CHECK_EG_MATCH

CLEANUP_THROW

Linked PRs

GH-99005: Add CALL_INTRINSIC_1 instruction #100771

GH-99005: More intrinsics #100774