1 /* This file was generated automatically from vm-engine.c; do not 2 edit. See the source file for copyright information. */ 3 4 #define FOR_EACH_VM_OPERATION(M) \ 5 M (0, halt, "halt", OP1 (X32)) \ 6 M (1, call, "call", OP2 (X8_F24, X8_C24)) \ 7 M (2, call_label, "call-label", OP3 (X8_F24, X8_C24, L32)) \ 8 M (3, tail_call, "tail-call", OP1 (X8_C24)) \ 9 M (4, tail_call_label, "tail-call-label", OP2 (X8_C24, L32)) \ 10 M (5, tail_call_shuffle, "tail-call/shuffle", OP1 (X8_F24)) \ 11 M (6, receive, "receive", OP2 (X8_F12_F12, X8_C24) | OP_DST) \ 12 M (7, receive_values, "receive-values", OP2 (X8_F24, B1_X7_C24)) \ 13 M (8, unused_8, NULL, NOP) \ 14 M (9, return_values, "return-values", OP1 (X8_C24)) \ 15 M (10, subr_call, "subr-call", OP1 (X32)) \ 16 M (11, foreign_call, "foreign-call", OP1 (X8_C12_C12)) \ 17 M (12, continuation_call, "continuation-call", OP1 (X8_C24)) \ 18 M (13, compose_continuation, "compose-continuation", OP1 (X8_C24)) \ 19 M (14, tail_apply, "tail-apply", OP1 (X32)) \ 20 M (15, call_cc, "call/cc", OP1 (X32)) \ 21 M (16, abort, "abort", OP1 (X32)) \ 22 M (17, builtin_ref, "builtin-ref", OP1 (X8_S12_C12) | OP_DST) \ 23 M (18, br_if_nargs_ne, "br-if-nargs-ne", OP2 (X8_C24, X8_L24)) \ 24 M (19, br_if_nargs_lt, "br-if-nargs-lt", OP2 (X8_C24, X8_L24)) \ 25 M (20, br_if_nargs_gt, "br-if-nargs-gt", OP2 (X8_C24, X8_L24)) \ 26 M (21, assert_nargs_ee, "assert-nargs-ee", OP1 (X8_C24)) \ 27 M (22, assert_nargs_ge, "assert-nargs-ge", OP1 (X8_C24)) \ 28 M (23, assert_nargs_le, "assert-nargs-le", OP1 (X8_C24)) \ 29 M (24, alloc_frame, "alloc-frame", OP1 (X8_C24)) \ 30 M (25, reset_frame, "reset-frame", OP1 (X8_C24)) \ 31 M (26, push, "push", OP1 (X8_S24)) \ 32 M (27, pop, "pop", OP1 (X8_S24) | OP_DST) \ 33 M (28, drop, "drop", OP1 (X8_C24)) \ 34 M (29, assert_nargs_ee_locals, "assert-nargs-ee/locals", OP1 (X8_C12_C12)) \ 35 M (30, br_if_npos_gt, "br-if-npos-gt", OP3 (X8_C24, X8_C24, X8_L24)) \ 36 M (31, bind_kwargs, "bind-kwargs", OP4 (X8_C24, C8_C24, X8_C24, N32)) \ 37 M (32, bind_rest, "bind-rest", OP1 (X8_F24) | OP_DST) \ 38 M (33, br, "br", OP1 (X8_L24)) \ 39 M (34, br_if_true, "br-if-true", OP2 (X8_S24, B1_X7_L24)) \ 40 M (35, br_if_null, "br-if-null", OP2 (X8_S24, B1_X7_L24)) \ 41 M (36, br_if_nil, "br-if-nil", OP2 (X8_S24, B1_X7_L24)) \ 42 M (37, br_if_pair, "br-if-pair", OP2 (X8_S24, B1_X7_L24)) \ 43 M (38, br_if_struct, "br-if-struct", OP2 (X8_S24, B1_X7_L24)) \ 44 M (39, br_if_char, "br-if-char", OP2 (X8_S24, B1_X7_L24)) \ 45 M (40, br_if_tc7, "br-if-tc7", OP2 (X8_S24, B1_C7_L24)) \ 46 M (41, br_if_eq, "br-if-eq", OP3 (X8_S24, X8_S24, B1_X7_L24)) \ 47 M (42, br_if_eqv, "br-if-eqv", OP3 (X8_S24, X8_S24, B1_X7_L24)) \ 48 M (43, unused_43, NULL, NOP) \ 49 M (44, br_if_logtest, "br-if-logtest", OP3 (X8_S24, X8_S24, B1_X7_L24)) \ 50 M (45, br_if_ee, "br-if-=", OP3 (X8_S24, X8_S24, B1_X7_L24)) \ 51 M (46, br_if_lt, "br-if-<", OP3 (X8_S24, X8_S24, B1_X7_L24)) \ 52 M (47, br_if_le, "br-if-<=", OP3 (X8_S24, X8_S24, B1_X7_L24)) \ 53 M (48, mov, "mov", OP1 (X8_S12_S12) | OP_DST) \ 54 M (49, long_mov, "long-mov", OP2 (X8_S24, X8_S24) | OP_DST) \ 55 M (50, long_fmov, "long-fmov", OP2 (X8_F24, X8_F24) | OP_DST) \ 56 M (51, box, "box", OP1 (X8_S12_S12) | OP_DST) \ 57 M (52, box_ref, "box-ref", OP1 (X8_S12_S12) | OP_DST) \ 58 M (53, box_set, "box-set!", OP1 (X8_S12_S12)) \ 59 M (54, make_closure, "make-closure", OP3 (X8_S24, L32, X8_C24) | OP_DST) \ 60 M (55, free_ref, "free-ref", OP2 (X8_S12_S12, X8_C24) | OP_DST) \ 61 M (56, free_set, "free-set!", OP2 (X8_S12_S12, X8_C24)) \ 62 M (57, make_short_immediate, "make-short-immediate", OP1 (X8_S8_I16) | OP_DST) \ 63 M (58, make_long_immediate, "make-long-immediate", OP2 (X8_S24, I32) | OP_DST) \ 64 M (59, make_long_long_immediate, "make-long-long-immediate", OP3 (X8_S24, A32, B32) | OP_DST) \ 65 M (60, make_non_immediate, "make-non-immediate", OP2 (X8_S24, N32) | OP_DST) \ 66 M (61, static_ref, "static-ref", OP2 (X8_S24, R32) | OP_DST) \ 67 M (62, static_set, "static-set!", OP2 (X8_S24, LO32)) \ 68 M (63, static_patch, "static-patch!", OP3 (X32, LO32, L32)) \ 69 M (64, current_module, "current-module", OP1 (X8_S24) | OP_DST) \ 70 M (65, resolve, "resolve", OP2 (X8_S24, B1_X7_S24) | OP_DST) \ 71 M (66, define, "define!", OP1 (X8_S12_S12) | OP_DST) \ 72 M (67, toplevel_box, "toplevel-box", OP5 (X8_S24, R32, R32, N32, B1_X31) | OP_DST) \ 73 M (68, module_box, "module-box", OP5 (X8_S24, R32, N32, N32, B1_X31) | OP_DST) \ 74 M (69, prompt, "prompt", OP3 (X8_S24, B1_X7_F24, X8_L24)) \ 75 M (70, wind, "wind", OP1 (X8_S12_S12)) \ 76 M (71, unwind, "unwind", OP1 (X32)) \ 77 M (72, push_fluid, "push-fluid", OP1 (X8_S12_S12)) \ 78 M (73, pop_fluid, "pop-fluid", OP1 (X32)) \ 79 M (74, fluid_ref, "fluid-ref", OP1 (X8_S12_S12) | OP_DST) \ 80 M (75, fluid_set, "fluid-set!", OP1 (X8_S12_S12)) \ 81 M (76, string_length, "string-length", OP1 (X8_S12_S12) | OP_DST) \ 82 M (77, string_ref, "string-ref", OP1 (X8_S8_S8_S8) | OP_DST) \ 83 M (78, string_to_number, "string->number", OP1 (X8_S12_S12) | OP_DST) \ 84 M (79, string_to_symbol, "string->symbol", OP1 (X8_S12_S12) | OP_DST) \ 85 M (80, symbol_to_keyword, "symbol->keyword", OP1 (X8_S12_S12) | OP_DST) \ 86 M (81, cons, "cons", OP1 (X8_S8_S8_S8) | OP_DST) \ 87 M (82, car, "car", OP1 (X8_S12_S12) | OP_DST) \ 88 M (83, cdr, "cdr", OP1 (X8_S12_S12) | OP_DST) \ 89 M (84, set_car, "set-car!", OP1 (X8_S12_S12)) \ 90 M (85, set_cdr, "set-cdr!", OP1 (X8_S12_S12)) \ 91 M (86, add, "add", OP1 (X8_S8_S8_S8) | OP_DST) \ 92 M (87, add_immediate, "add/immediate", OP1 (X8_S8_S8_C8) | OP_DST) \ 93 M (88, sub, "sub", OP1 (X8_S8_S8_S8) | OP_DST) \ 94 M (89, sub_immediate, "sub/immediate", OP1 (X8_S8_S8_C8) | OP_DST) \ 95 M (90, mul, "mul", OP1 (X8_S8_S8_S8) | OP_DST) \ 96 M (91, div, "div", OP1 (X8_S8_S8_S8) | OP_DST) \ 97 M (92, quo, "quo", OP1 (X8_S8_S8_S8) | OP_DST) \ 98 M (93, rem, "rem", OP1 (X8_S8_S8_S8) | OP_DST) \ 99 M (94, mod, "mod", OP1 (X8_S8_S8_S8) | OP_DST) \ 100 M (95, ash, "ash", OP1 (X8_S8_S8_S8) | OP_DST) \ 101 M (96, logand, "logand", OP1 (X8_S8_S8_S8) | OP_DST) \ 102 M (97, logior, "logior", OP1 (X8_S8_S8_S8) | OP_DST) \ 103 M (98, logxor, "logxor", OP1 (X8_S8_S8_S8) | OP_DST) \ 104 M (99, make_vector, "make-vector", OP1 (X8_S8_S8_S8) | OP_DST) \ 105 M (100, make_vector_immediate, "make-vector/immediate", OP1 (X8_S8_C8_S8) | OP_DST) \ 106 M (101, vector_length, "vector-length", OP1 (X8_S12_S12) | OP_DST) \ 107 M (102, vector_ref, "vector-ref", OP1 (X8_S8_S8_S8) | OP_DST) \ 108 M (103, vector_ref_immediate, "vector-ref/immediate", OP1 (X8_S8_S8_C8) | OP_DST) \ 109 M (104, vector_set, "vector-set!", OP1 (X8_S8_S8_S8)) \ 110 M (105, vector_set_immediate, "vector-set!/immediate", OP1 (X8_S8_C8_S8)) \ 111 M (106, struct_vtable, "struct-vtable", OP1 (X8_S12_S12) | OP_DST) \ 112 M (107, allocate_struct, "allocate-struct", OP1 (X8_S8_S8_S8) | OP_DST) \ 113 M (108, struct_ref, "struct-ref", OP1 (X8_S8_S8_S8) | OP_DST) \ 114 M (109, struct_set, "struct-set!", OP1 (X8_S8_S8_S8)) \ 115 M (110, allocate_struct_immediate, "allocate-struct/immediate", OP1 (X8_S8_S8_C8) | OP_DST) \ 116 M (111, struct_ref_immediate, "struct-ref/immediate", OP1 (X8_S8_S8_C8) | OP_DST) \ 117 M (112, struct_set_immediate, "struct-set!/immediate", OP1 (X8_S8_C8_S8)) \ 118 M (113, class_of, "class-of", OP1 (X8_S12_S12) | OP_DST) \ 119 M (114, load_typed_array, "load-typed-array", OP5 (X8_S24, X8_S24, X8_S24, N32, C32) | OP_DST) \ 120 M (115, make_array, "make-array", OP4 (X8_S24, X8_S24, X8_S24, X8_S24) | OP_DST) \ 121 M (116, bv_u8_ref, "bv-u8-ref", OP1 (X8_S8_S8_S8) | OP_DST) \ 122 M (117, bv_s8_ref, "bv-s8-ref", OP1 (X8_S8_S8_S8) | OP_DST) \ 123 M (118, bv_u16_ref, "bv-u16-ref", OP1 (X8_S8_S8_S8) | OP_DST) \ 124 M (119, bv_s16_ref, "bv-s16-ref", OP1 (X8_S8_S8_S8) | OP_DST) \ 125 M (120, bv_u32_ref, "bv-u32-ref", OP1 (X8_S8_S8_S8) | OP_DST) \ 126 M (121, bv_s32_ref, "bv-s32-ref", OP1 (X8_S8_S8_S8) | OP_DST) \ 127 M (122, bv_u64_ref, "bv-u64-ref", OP1 (X8_S8_S8_S8) | OP_DST) \ 128 M (123, bv_s64_ref, "bv-s64-ref", OP1 (X8_S8_S8_S8) | OP_DST) \ 129 M (124, bv_f32_ref, "bv-f32-ref", OP1 (X8_S8_S8_S8) | OP_DST) \ 130 M (125, bv_f64_ref, "bv-f64-ref", OP1 (X8_S8_S8_S8) | OP_DST) \ 131 M (126, bv_u8_set, "bv-u8-set!", OP1 (X8_S8_S8_S8)) \ 132 M (127, bv_s8_set, "bv-s8-set!", OP1 (X8_S8_S8_S8)) \ 133 M (128, bv_u16_set, "bv-u16-set!", OP1 (X8_S8_S8_S8)) \ 134 M (129, bv_s16_set, "bv-s16-set!", OP1 (X8_S8_S8_S8)) \ 135 M (130, bv_u32_set, "bv-u32-set!", OP1 (X8_S8_S8_S8)) \ 136 M (131, bv_s32_set, "bv-s32-set!", OP1 (X8_S8_S8_S8)) \ 137 M (132, bv_u64_set, "bv-u64-set!", OP1 (X8_S8_S8_S8)) \ 138 M (133, bv_s64_set, "bv-s64-set!", OP1 (X8_S8_S8_S8)) \ 139 M (134, bv_f32_set, "bv-f32-set!", OP1 (X8_S8_S8_S8)) \ 140 M (135, bv_f64_set, "bv-f64-set!", OP1 (X8_S8_S8_S8)) \ 141 M (136, scm_to_f64, "scm->f64", OP1 (X8_S12_S12) | OP_DST) \ 142 M (137, f64_to_scm, "f64->scm", OP1 (X8_S12_S12) | OP_DST) \ 143 M (138, fadd, "fadd", OP1 (X8_S8_S8_S8) | OP_DST) \ 144 M (139, fsub, "fsub", OP1 (X8_S8_S8_S8) | OP_DST) \ 145 M (140, fmul, "fmul", OP1 (X8_S8_S8_S8) | OP_DST) \ 146 M (141, fdiv, "fdiv", OP1 (X8_S8_S8_S8) | OP_DST) \ 147 M (142, apply_non_program, "apply-non-program", OP1 (X32)) \ 148 M (143, scm_to_u64, "scm->u64", OP1 (X8_S12_S12) | OP_DST) \ 149 M (144, u64_to_scm, "u64->scm", OP1 (X8_S12_S12) | OP_DST) \ 150 M (145, bv_length, "bv-length", OP1 (X8_S12_S12) | OP_DST) \ 151 M (146, br_if_u64_ee, "br-if-u64-=", OP3 (X8_S24, X8_S24, B1_X7_L24)) \ 152 M (147, br_if_u64_lt, "br-if-u64-<", OP3 (X8_S24, X8_S24, B1_X7_L24)) \ 153 M (148, br_if_u64_le, "br-if-u64-<=", OP3 (X8_S24, X8_S24, B1_X7_L24)) \ 154 M (149, uadd, "uadd", OP1 (X8_S8_S8_S8) | OP_DST) \ 155 M (150, usub, "usub", OP1 (X8_S8_S8_S8) | OP_DST) \ 156 M (151, umul, "umul", OP1 (X8_S8_S8_S8) | OP_DST) \ 157 M (152, uadd_immediate, "uadd/immediate", OP1 (X8_S8_S8_C8) | OP_DST) \ 158 M (153, usub_immediate, "usub/immediate", OP1 (X8_S8_S8_C8) | OP_DST) \ 159 M (154, umul_immediate, "umul/immediate", OP1 (X8_S8_S8_C8) | OP_DST) \ 160 M (155, load_f64, "load-f64", OP3 (X8_S24, AF32, BF32) | OP_DST) \ 161 M (156, load_u64, "load-u64", OP3 (X8_S24, AU32, BU32) | OP_DST) \ 162 M (157, scm_to_s64, "scm->s64", OP1 (X8_S12_S12) | OP_DST) \ 163 M (158, s64_to_scm, "s64->scm", OP1 (X8_S12_S12) | OP_DST) \ 164 M (159, load_s64, "load-s64", OP3 (X8_S24, AS32, BS32) | OP_DST) \ 165 M (160, current_thread, "current-thread", OP1 (X8_S24) | OP_DST) \ 166 M (161, logsub, "logsub", OP1 (X8_S8_S8_S8) | OP_DST) \ 167 M (162, ulogand, "ulogand", OP1 (X8_S8_S8_S8) | OP_DST) \ 168 M (163, ulogior, "ulogior", OP1 (X8_S8_S8_S8) | OP_DST) \ 169 M (164, ulogsub, "ulogsub", OP1 (X8_S8_S8_S8) | OP_DST) \ 170 M (165, ursh, "ursh", OP1 (X8_S8_S8_S8) | OP_DST) \ 171 M (166, ulsh, "ulsh", OP1 (X8_S8_S8_S8) | OP_DST) \ 172 M (167, scm_to_u64_truncate, "scm->u64/truncate", OP1 (X8_S12_S12) | OP_DST) \ 173 M (168, ursh_immediate, "ursh/immediate", OP1 (X8_S8_S8_C8) | OP_DST) \ 174 M (169, ulsh_immediate, "ulsh/immediate", OP1 (X8_S8_S8_C8) | OP_DST) \ 175 M (170, br_if_u64_ee_scm, "br-if-u64-=-scm", OP3 (X8_S24, X8_S24, B1_X7_L24)) \ 176 M (171, br_if_u64_lt_scm, "br-if-u64-<-scm", OP3 (X8_S24, X8_S24, B1_X7_L24)) \ 177 M (172, br_if_u64_le_scm, "br-if-u64-<=-scm", OP3 (X8_S24, X8_S24, B1_X7_L24)) \ 178 M (173, br_if_u64_gt_scm, "br-if-u64->-scm", OP3 (X8_S24, X8_S24, B1_X7_L24)) \ 179 M (174, br_if_u64_ge_scm, "br-if-u64->=-scm", OP3 (X8_S24, X8_S24, B1_X7_L24)) \ 180 M (175, integer_to_char, "integer->char", OP1 (X8_S12_S12) | OP_DST) \ 181 M (176, char_to_integer, "char->integer", OP1 (X8_S12_S12) | OP_DST) \ 182 M (177, ulogxor, "ulogxor", OP1 (X8_S8_S8_S8) | OP_DST) \ 183 M (178, make_atomic_box, "make-atomic-box", OP1 (X8_S12_S12) | OP_DST) \ 184 M (179, atomic_box_ref, "atomic-box-ref", OP1 (X8_S12_S12) | OP_DST) \ 185 M (180, atomic_box_set, "atomic-box-set!", OP1 (X8_S12_S12)) \ 186 M (181, atomic_box_swap, "atomic-box-swap!", OP2 (X8_S12_S12, X8_S24) | OP_DST) \ 187 M (182, atomic_box_compare_and_swap, "atomic-box-compare-and-swap!", OP3 (X8_S12_S12, X8_S24, X8_S24) | OP_DST) \ 188 M (183, handle_interrupts, "handle-interrupts", OP1 (X32)) \ 189 M (184, return_from_interrupt, "return-from-interrupt", OP1 (X32)) \ 190 M (185, push_dynamic_state, "push-dynamic-state", OP1 (X8_S24)) \ 191 M (186, pop_dynamic_state, "pop-dynamic-state", OP1 (X32)) \ 192 M (187, br_if_f64_ee, "br-if-f64-=", OP3 (X8_S24, X8_S24, B1_X7_L24)) \ 193 M (188, br_if_f64_lt, "br-if-f64-<", OP3 (X8_S24, X8_S24, B1_X7_L24)) \ 194 M (189, br_if_f64_le, "br-if-f64-<=", OP3 (X8_S24, X8_S24, B1_X7_L24)) \ 195 M (190, br_if_f64_gt, "br-if-f64->", OP3 (X8_S24, X8_S24, B1_X7_L24)) \ 196 M (191, br_if_f64_ge, "br-if-f64->=", OP3 (X8_S24, X8_S24, B1_X7_L24)) \ 197 M (192, string_set, "string-set!", OP1 (X8_S8_S8_S8)) \ 198 M (193, unused_193, NULL, NOP) \ 199 M (194, unused_194, NULL, NOP) \ 200 M (195, unused_195, NULL, NOP) \ 201 M (196, unused_196, NULL, NOP) \ 202 M (197, unused_197, NULL, NOP) \ 203 M (198, unused_198, NULL, NOP) \ 204 M (199, unused_199, NULL, NOP) \ 205 M (200, unused_200, NULL, NOP) \ 206 M (201, unused_201, NULL, NOP) \ 207 M (202, unused_202, NULL, NOP) \ 208 M (203, unused_203, NULL, NOP) \ 209 M (204, unused_204, NULL, NOP) \ 210 M (205, unused_205, NULL, NOP) \ 211 M (206, unused_206, NULL, NOP) \ 212 M (207, unused_207, NULL, NOP) \ 213 M (208, unused_208, NULL, NOP) \ 214 M (209, unused_209, NULL, NOP) \ 215 M (210, unused_210, NULL, NOP) \ 216 M (211, unused_211, NULL, NOP) \ 217 M (212, unused_212, NULL, NOP) \ 218 M (213, unused_213, NULL, NOP) \ 219 M (214, unused_214, NULL, NOP) \ 220 M (215, unused_215, NULL, NOP) \ 221 M (216, unused_216, NULL, NOP) \ 222 M (217, unused_217, NULL, NOP) \ 223 M (218, unused_218, NULL, NOP) \ 224 M (219, unused_219, NULL, NOP) \ 225 M (220, unused_220, NULL, NOP) \ 226 M (221, unused_221, NULL, NOP) \ 227 M (222, unused_222, NULL, NOP) \ 228 M (223, unused_223, NULL, NOP) \ 229 M (224, unused_224, NULL, NOP) \ 230 M (225, unused_225, NULL, NOP) \ 231 M (226, unused_226, NULL, NOP) \ 232 M (227, unused_227, NULL, NOP) \ 233 M (228, unused_228, NULL, NOP) \ 234 M (229, unused_229, NULL, NOP) \ 235 M (230, unused_230, NULL, NOP) \ 236 M (231, unused_231, NULL, NOP) \ 237 M (232, unused_232, NULL, NOP) \ 238 M (233, unused_233, NULL, NOP) \ 239 M (234, unused_234, NULL, NOP) \ 240 M (235, unused_235, NULL, NOP) \ 241 M (236, unused_236, NULL, NOP) \ 242 M (237, unused_237, NULL, NOP) \ 243 M (238, unused_238, NULL, NOP) \ 244 M (239, unused_239, NULL, NOP) \ 245 M (240, unused_240, NULL, NOP) \ 246 M (241, unused_241, NULL, NOP) \ 247 M (242, unused_242, NULL, NOP) \ 248 M (243, unused_243, NULL, NOP) \ 249 M (244, unused_244, NULL, NOP) \ 250 M (245, unused_245, NULL, NOP) \ 251 M (246, unused_246, NULL, NOP) \ 252 M (247, unused_247, NULL, NOP) \ 253 M (248, unused_248, NULL, NOP) \ 254 M (249, unused_249, NULL, NOP) \ 255 M (250, unused_250, NULL, NOP) \ 256 M (251, unused_251, NULL, NOP) \ 257 M (252, unused_252, NULL, NOP) \ 258 M (253, unused_253, NULL, NOP) \ 259 M (254, unused_254, NULL, NOP) \ 260 M (255, unused_255, NULL, NOP) \ 261 262