System prims are numbered and not-numbered. The numbered ones (up to 256) are heavily optimized and in a table for fast lookup. The shim code converts the asm call to a c call. The other prims are not as heavily optimized and are in the same table as the user prims.