Some of the opcodes used by the Erlang VM have an obvious meaning, but others are mysterious and they seem to differ each other by subtle differences.
As an example:
- What's the difference between the
call_ext
andcall_ext_only
opcodes? - What's the difference between the
allocate
and theallocate_zero
opcodes? - What is the
test_heap
opcode used for? Is it some kind of check or it actually allocate some space in the heap? It is somehow linked to the usage of tuples and lists, but in which terms? - What do the arguments of the
allocate
stands for?
If anyone could point me to any piece of documentation available for the opcodes used by the Erlang VM or if he could at least enlighten me on the above points, it would be very appreciated.