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_extandcall_ext_onlyopcodes? - What's the difference between the 
allocateand theallocate_zeroopcodes? - What is the 
test_heapopcode 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 
allocatestands 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.