# # %CopyrightBegin% # # Copyright Ericsson AB 1998-2010. All Rights Reserved. # # The contents of this file are subject to the Erlang Public License, # Version 1.1, (the "License"); you may not use this file except in # compliance with the License. You should have received a copy of the # Erlang Public License along with this software. If not, it can be # retrieved online at http://www.erlang.org/. # # Software distributed under the License is distributed on an "AS IS" # basis, WITHOUT WARRANTY OF ANY KIND, either express or implied. See # the License for the specific language governing rights and limitations # under the License. # # %CopyrightEnd% # BEAM_FORMAT_NUMBER=0 # # Generic instructions, generated by the compiler. If any of them change number, # arity or semantics, the format number above must be bumped. # 1: label/1 2: func_info/3 3: int_code_end/0 # # Function and BIF calls. # 4: call/2 5: call_last/3 6: call_only/2 7: call_ext/2 8: call_ext_last/3 9: bif0/2 10: bif1/4 11: bif2/5 # # Allocating, deallocating and returning. # 12: allocate/2 13: allocate_heap/3 14: allocate_zero/2 15: allocate_heap_zero/3 16: test_heap/2 17: init/1 18: deallocate/1 19: return/0 # # Sending & receiving. # 20: send/0 21: remove_message/0 22: timeout/0 23: loop_rec/2 24: loop_rec_end/1 25: wait/1 26: wait_timeout/2 # # Arithmethic opcodes. # 27: -m_plus/4 28: -m_minus/4 29: -m_times/4 30: -m_div/4 31: -int_div/4 32: -int_rem/4 33: -int_band/4 34: -int_bor/4 35: -int_bxor/4 36: -int_bsl/4 37: -int_bsr/4 38: -int_bnot/3 # # Comparision operators. # 39: is_lt/3 40: is_ge/3 41: is_eq/3 42: is_ne/3 43: is_eq_exact/3 44: is_ne_exact/3 # # Type tests. # 45: is_integer/2 46: is_float/2 47: is_number/2 48: is_atom/2 49: is_pid/2 50: is_reference/2 51: is_port/2 52: is_nil/2 53: is_binary/2 54: -is_constant/2 55: is_list/2 56: is_nonempty_list/2 57: is_tuple/2 58: test_arity/3 # # Indexing & jumping. # 59: select_val/3 60: select_tuple_arity/3 61: jump/1 # # Catch. # 62: catch/2 63: catch_end/1 # # Moving, extracting, modifying. # 64: move/2 65: get_list/3 66: get_tuple_element/3 67: set_tuple_element/3 # # Building terms. # 68: -put_string/3 69: put_list/3 70: put_tuple/2 71: put/1 # # Raising errors. # 72: badmatch/1 73: if_end/0 74: case_end/1 # # 'fun' support. # 75: call_fun/1 76: -make_fun/3 77: is_function/2 # # Late additions to R5. # 78: call_ext_only/2 # # Binary matching (R7). # 79: -bs_start_match/2 80: -bs_get_integer/5 81: -bs_get_float/5 82: -bs_get_binary/5 83: -bs_skip_bits/4 84: -bs_test_tail/2 85: -bs_save/1 86: -bs_restore/1 # # Binary construction (R7A). # 87: -bs_init/2 88: -bs_final/2 89: bs_put_integer/5 90: bs_put_binary/5 91: bs_put_float/5 92: bs_put_string/2 # # Binary construction (R7B). # 93: -bs_need_buf/1 # # Floating point arithmetic (R8). # 94: fclearerror/0 95: fcheckerror/1 96: fmove/2 97: fconv/2 98: fadd/4 99: fsub/4 100: fmul/4 101: fdiv/4 102: fnegate/3 # New fun construction (R8). 103: make_fun2/1 # Try/catch/raise (R10B). 104: try/2 105: try_end/1 106: try_case/1 107: try_case_end/1 108: raise/2 # New instructions in R10B. 109: bs_init2/6 110: -bs_bits_to_bytes/3 111: bs_add/5 112: apply/1 113: apply_last/2 114: is_boolean/2 # New instructions in R10B-6. 115: is_function2/3 # New bit syntax matching in R11B. 116: bs_start_match2/5 117: bs_get_integer2/7 118: bs_get_float2/7 119: bs_get_binary2/7 120: bs_skip_bits2/5 121: bs_test_tail2/3 122: bs_save2/2 123: bs_restore2/2 # New GC bifs introduced in R11B. 124: gc_bif1/5 125: gc_bif2/6 # Experimental new bit_level bifs introduced in R11B. # NOT used in R12B. 126: -bs_final2/2 127: -bs_bits_to_bytes2/2 # R11B-4 128: -put_literal/2 # R11B-5 129: is_bitstr/2 # R12B 130: bs_context_to_binary/1 131: bs_test_unit/3 132: bs_match_string/4 133: bs_init_writable/0 134: bs_append/8 135: bs_private_append/6 136: trim/2 137: bs_init_bits/6 # R12B-5 138: bs_get_utf8/5 139: bs_skip_utf8/4 140: bs_get_utf16/5 141: bs_skip_utf16/4 142: bs_get_utf32/5 143: bs_skip_utf32/4 144: bs_utf8_size/3 145: bs_put_utf8/3 146: bs_utf16_size/3 147: bs_put_utf16/3 148: bs_put_utf32/3 # R13B03 149: on_load/0 # R14A 150: recv_mark/1 151: recv_set/1 152: gc_bif3/7