/* This file is automatically generated by tool/opcode.pl.
 * ANY CHANGES WILL BE LOST!
 */
/* forward decl */
XSLATE(noop);
XSLATE(move_sa_to_sb);
XSLATE(swap); /* swap sa and sb */
XSLATE(push);
XSLATE(pop);
XSLATE(pop_to_sb);
XSLATE(pushmark);
XSLATE(nil);
XSLATE_w_sv(literal);
XSLATE_w_int(literal_i);
XSLATE_w_key(fetch); /* fetch a field from the top */
XSLATE(fetch_field); /* fetch a field from a variable (bin operator) */
XSLATE_w_key(fetch_field_s); /* fetch a field from a variable (for literal) */
XSLATE(print);
XSLATE_w_sv(print_s);
XSLATE(print_raw);
XSLATE_w_sv(print_raw_s);
XSLATE_w_var(for_start);
XSLATE_w_int(for_next);
XSLATE_w_int(fetch_iter);
XSLATE(add);
XSLATE(sub);
XSLATE(mul);
XSLATE(div);
XSLATE(mod);
XSLATE(concat);
XSLATE(filt);
XSLATE_w_int(and);
XSLATE_w_int(or);
XSLATE_w_int(dor);
XSLATE(not);
XSLATE(eq);
XSLATE(ne);
XSLATE(lt);
XSLATE(le);
XSLATE(gt);
XSLATE(ge);
XSLATE_w_key(function);
XSLATE(call);
XSLATE_w_int(pc_inc);
XSLATE_w_int(goto);

enum tx_opcode_t {
    TXOP_noop, /* 0 */
    TXOP_move_sa_to_sb, /* 1 */
    TXOP_swap, /* 2 */
    TXOP_push, /* 3 */
    TXOP_pop, /* 4 */
    TXOP_pop_to_sb, /* 5 */
    TXOP_pushmark, /* 6 */
    TXOP_nil, /* 7 */
    TXOP_literal, /* 8 */
    TXOP_literal_i, /* 9 */
    TXOP_fetch, /* 10 */
    TXOP_fetch_field, /* 11 */
    TXOP_fetch_field_s, /* 12 */
    TXOP_print, /* 13 */
    TXOP_print_s, /* 14 */
    TXOP_print_raw, /* 15 */
    TXOP_print_raw_s, /* 16 */
    TXOP_for_start, /* 17 */
    TXOP_for_next, /* 18 */
    TXOP_fetch_iter, /* 19 */
    TXOP_add, /* 20 */
    TXOP_sub, /* 21 */
    TXOP_mul, /* 22 */
    TXOP_div, /* 23 */
    TXOP_mod, /* 24 */
    TXOP_concat, /* 25 */
    TXOP_filt, /* 26 */
    TXOP_and, /* 27 */
    TXOP_or, /* 28 */
    TXOP_dor, /* 29 */
    TXOP_not, /* 30 */
    TXOP_eq, /* 31 */
    TXOP_ne, /* 32 */
    TXOP_lt, /* 33 */
    TXOP_le, /* 34 */
    TXOP_gt, /* 35 */
    TXOP_ge, /* 36 */
    TXOP_function, /* 37 */
    TXOP_call, /* 38 */
    TXOP_pc_inc, /* 39 */
    TXOP_goto, /* 40 */
    TXOP_last
}; /* enum tx_opcode_t */

static const tx_exec_t tx_opcode[] = {
    TXCODE_noop,
    TXCODE_move_sa_to_sb,
    TXCODE_swap,
    TXCODE_push,
    TXCODE_pop,
    TXCODE_pop_to_sb,
    TXCODE_pushmark,
    TXCODE_nil,
    TXCODE_literal,
    TXCODE_literal_i,
    TXCODE_fetch,
    TXCODE_fetch_field,
    TXCODE_fetch_field_s,
    TXCODE_print,
    TXCODE_print_s,
    TXCODE_print_raw,
    TXCODE_print_raw_s,
    TXCODE_for_start,
    TXCODE_for_next,
    TXCODE_fetch_iter,
    TXCODE_add,
    TXCODE_sub,
    TXCODE_mul,
    TXCODE_div,
    TXCODE_mod,
    TXCODE_concat,
    TXCODE_filt,
    TXCODE_and,
    TXCODE_or,
    TXCODE_dor,
    TXCODE_not,
    TXCODE_eq,
    TXCODE_ne,
    TXCODE_lt,
    TXCODE_le,
    TXCODE_gt,
    TXCODE_ge,
    TXCODE_function,
    TXCODE_call,
    TXCODE_pc_inc,
    TXCODE_goto,
    NULL
}; /* tx_opcode[] */

static const U8 tx_oparg[] = {
    0U, /* noop */
    0U, /* move_sa_to_sb */
    0U, /* swap */
    0U, /* push */
    0U, /* pop */
    0U, /* pop_to_sb */
    0U, /* pushmark */
    0U, /* nil */
    TXCODE_W_SV, /* literal */
    TXCODE_W_INT, /* literal_i */
    TXCODE_W_KEY, /* fetch */
    0U, /* fetch_field */
    TXCODE_W_KEY, /* fetch_field_s */
    0U, /* print */
    TXCODE_W_SV, /* print_s */
    0U, /* print_raw */
    TXCODE_W_SV, /* print_raw_s */
    TXCODE_W_VAR, /* for_start */
    TXCODE_W_INT, /* for_next */
    TXCODE_W_INT, /* fetch_iter */
    0U, /* add */
    0U, /* sub */
    0U, /* mul */
    0U, /* div */
    0U, /* mod */
    0U, /* concat */
    0U, /* filt */
    TXCODE_W_INT, /* and */
    TXCODE_W_INT, /* or */
    TXCODE_W_INT, /* dor */
    0U, /* not */
    0U, /* eq */
    0U, /* ne */
    0U, /* lt */
    0U, /* le */
    0U, /* gt */
    0U, /* ge */
    TXCODE_W_KEY, /* function */
    0U, /* call */
    TXCODE_W_INT, /* pc_inc */
    TXCODE_W_INT, /* goto */
}; /* tx_oparg[] */

static void
tx_init_ops(pTHX_ HV* const ops) {
    (void)hv_stores(ops, STRINGIFY(noop), newSViv(TXOP_noop));
    (void)hv_stores(ops, STRINGIFY(move_sa_to_sb), newSViv(TXOP_move_sa_to_sb));
    (void)hv_stores(ops, STRINGIFY(swap), newSViv(TXOP_swap));
    (void)hv_stores(ops, STRINGIFY(push), newSViv(TXOP_push));
    (void)hv_stores(ops, STRINGIFY(pop), newSViv(TXOP_pop));
    (void)hv_stores(ops, STRINGIFY(pop_to_sb), newSViv(TXOP_pop_to_sb));
    (void)hv_stores(ops, STRINGIFY(pushmark), newSViv(TXOP_pushmark));
    (void)hv_stores(ops, STRINGIFY(nil), newSViv(TXOP_nil));
    (void)hv_stores(ops, STRINGIFY(literal), newSViv(TXOP_literal));
    (void)hv_stores(ops, STRINGIFY(literal_i), newSViv(TXOP_literal_i));
    (void)hv_stores(ops, STRINGIFY(fetch), newSViv(TXOP_fetch));
    (void)hv_stores(ops, STRINGIFY(fetch_field), newSViv(TXOP_fetch_field));
    (void)hv_stores(ops, STRINGIFY(fetch_field_s), newSViv(TXOP_fetch_field_s));
    (void)hv_stores(ops, STRINGIFY(print), newSViv(TXOP_print));
    (void)hv_stores(ops, STRINGIFY(print_s), newSViv(TXOP_print_s));
    (void)hv_stores(ops, STRINGIFY(print_raw), newSViv(TXOP_print_raw));
    (void)hv_stores(ops, STRINGIFY(print_raw_s), newSViv(TXOP_print_raw_s));
    (void)hv_stores(ops, STRINGIFY(for_start), newSViv(TXOP_for_start));
    (void)hv_stores(ops, STRINGIFY(for_next), newSViv(TXOP_for_next));
    (void)hv_stores(ops, STRINGIFY(fetch_iter), newSViv(TXOP_fetch_iter));
    (void)hv_stores(ops, STRINGIFY(add), newSViv(TXOP_add));
    (void)hv_stores(ops, STRINGIFY(sub), newSViv(TXOP_sub));
    (void)hv_stores(ops, STRINGIFY(mul), newSViv(TXOP_mul));
    (void)hv_stores(ops, STRINGIFY(div), newSViv(TXOP_div));
    (void)hv_stores(ops, STRINGIFY(mod), newSViv(TXOP_mod));
    (void)hv_stores(ops, STRINGIFY(concat), newSViv(TXOP_concat));
    (void)hv_stores(ops, STRINGIFY(filt), newSViv(TXOP_filt));
    (void)hv_stores(ops, STRINGIFY(and), newSViv(TXOP_and));
    (void)hv_stores(ops, STRINGIFY(or), newSViv(TXOP_or));
    (void)hv_stores(ops, STRINGIFY(dor), newSViv(TXOP_dor));
    (void)hv_stores(ops, STRINGIFY(not), newSViv(TXOP_not));
    (void)hv_stores(ops, STRINGIFY(eq), newSViv(TXOP_eq));
    (void)hv_stores(ops, STRINGIFY(ne), newSViv(TXOP_ne));
    (void)hv_stores(ops, STRINGIFY(lt), newSViv(TXOP_lt));
    (void)hv_stores(ops, STRINGIFY(le), newSViv(TXOP_le));
    (void)hv_stores(ops, STRINGIFY(gt), newSViv(TXOP_gt));
    (void)hv_stores(ops, STRINGIFY(ge), newSViv(TXOP_ge));
    (void)hv_stores(ops, STRINGIFY(function), newSViv(TXOP_function));
    (void)hv_stores(ops, STRINGIFY(call), newSViv(TXOP_call));
    (void)hv_stores(ops, STRINGIFY(pc_inc), newSViv(TXOP_pc_inc));
    (void)hv_stores(ops, STRINGIFY(goto), newSViv(TXOP_goto));
} /* tx_register_ops() */
