Skip to content

Instantly share code, notes, and snippets.

@gfx
Created October 17, 2014 11:17
Show Gist options
  • Save gfx/e2b5de5f627a889df0de to your computer and use it in GitHub Desktop.
Save gfx/e2b5de5f627a889df0de to your computer and use it in GitHub Desktop.
/* This file is automatically generated by tool/opcode.PL.
* ANY CHANGES WILL BE LOST!
*/
/* forward decl for Xslate opcodes */
TXC(noop);
TXC(move_to_sb);
TXC(move_from_sb);
TXC_w_var(save_to_lvar);
TXC_w_var(load_lvar);
TXC_w_var(load_lvar_to_sb);
TXC_w_key(localize_s);
TXC(localize_vars);
TXC(push);
TXC(pushmark);
TXC(nil);
TXC_w_sv(literal);
TXC_w_sviv(literal_i);
TXC_w_key(fetch_s); /* fetch a field from the top */
TXC(fetch_field); /* fetch a field from a variable (bin operator) */
TXC_w_key(fetch_field_s); /* fetch a field from a variable (for literal) */
TXC(print);
TXC(print_raw);
TXC_w_sv(print_raw_s);
TXC(include);
TXC(find_file);
TXC(suffix);
TXC_w_var(for_start);
TXC_goto(for_iter);
TXC(add);
TXC(sub);
TXC(mul);
TXC(div);
TXC(mod);
TXC_w_sv(concat);
TXC_w_sv(repeat);
TXC(bitor);
TXC(bitand);
TXC(bitxor);
TXC(bitneg);
TXC_goto(and);
TXC_goto(dand);
TXC_goto(or);
TXC_goto(dor);
TXC(not);
TXC(minus); /* unary minus */
TXC(max_index);
TXC(builtin_mark_raw);
TXC(builtin_unmark_raw);
TXC(builtin_uri_escape);
TXC(builtin_is_array_ref);
TXC(builtin_is_hash_ref);
TXC(builtin_html_escape);
TXC(is_code_ref);
TXC(merge_hash);
TXC(match);
TXC(eq);
TXC(ne);
TXC(lt);
TXC(le);
TXC(gt);
TXC(ge);
TXC(ncmp);
TXC(scmp);
TXC(range);
TXC_w_key(fetch_symbol); /* functions, macros, constants */
TXC(funcall); /* call a function or a macro */
TXC(macro_end);
TXC_w_key(methodcall_s);
TXC(make_array);
TXC(make_hash);
TXC(enter);
TXC(leave);
TXC_goto(goto);
TXC(vars);
TXC_w_sv(depend); /* tell the vm to dependent template files */
TXC_w_key(macro_begin);
TXC_w_sviv(macro_nargs);
TXC_w_sviv(macro_outer);
TXC(set_opinfo);
TXC(super);
TXC(end);
enum tx_opcode_t {
TXOP_noop, /* 0 */
TXOP_move_to_sb, /* 1 */
TXOP_move_from_sb, /* 2 */
TXOP_save_to_lvar, /* 3 */
TXOP_load_lvar, /* 4 */
TXOP_load_lvar_to_sb, /* 5 */
TXOP_localize_s, /* 6 */
TXOP_localize_vars, /* 7 */
TXOP_push, /* 8 */
TXOP_pushmark, /* 9 */
TXOP_nil, /* 10 */
TXOP_literal, /* 11 */
TXOP_literal_i, /* 12 */
TXOP_fetch_s, /* 13 */
TXOP_fetch_field, /* 14 */
TXOP_fetch_field_s, /* 15 */
TXOP_print, /* 16 */
TXOP_print_raw, /* 17 */
TXOP_print_raw_s, /* 18 */
TXOP_include, /* 19 */
TXOP_find_file, /* 20 */
TXOP_suffix, /* 21 */
TXOP_for_start, /* 22 */
TXOP_for_iter, /* 23 */
TXOP_add, /* 24 */
TXOP_sub, /* 25 */
TXOP_mul, /* 26 */
TXOP_div, /* 27 */
TXOP_mod, /* 28 */
TXOP_concat, /* 29 */
TXOP_repeat, /* 30 */
TXOP_bitor, /* 31 */
TXOP_bitand, /* 32 */
TXOP_bitxor, /* 33 */
TXOP_bitneg, /* 34 */
TXOP_and, /* 35 */
TXOP_dand, /* 36 */
TXOP_or, /* 37 */
TXOP_dor, /* 38 */
TXOP_not, /* 39 */
TXOP_minus, /* 40 */
TXOP_max_index, /* 41 */
TXOP_builtin_mark_raw, /* 42 */
TXOP_builtin_unmark_raw, /* 43 */
TXOP_builtin_uri_escape, /* 44 */
TXOP_builtin_is_array_ref, /* 45 */
TXOP_builtin_is_hash_ref, /* 46 */
TXOP_builtin_html_escape, /* 47 */
TXOP_is_code_ref, /* 48 */
TXOP_merge_hash, /* 49 */
TXOP_match, /* 50 */
TXOP_eq, /* 51 */
TXOP_ne, /* 52 */
TXOP_lt, /* 53 */
TXOP_le, /* 54 */
TXOP_gt, /* 55 */
TXOP_ge, /* 56 */
TXOP_ncmp, /* 57 */
TXOP_scmp, /* 58 */
TXOP_range, /* 59 */
TXOP_fetch_symbol, /* 60 */
TXOP_funcall, /* 61 */
TXOP_macro_end, /* 62 */
TXOP_methodcall_s, /* 63 */
TXOP_make_array, /* 64 */
TXOP_make_hash, /* 65 */
TXOP_enter, /* 66 */
TXOP_leave, /* 67 */
TXOP_goto, /* 68 */
TXOP_vars, /* 69 */
TXOP_depend, /* 70 */
TXOP_macro_begin, /* 71 */
TXOP_macro_nargs, /* 72 */
TXOP_macro_outer, /* 73 */
TXOP_set_opinfo, /* 74 */
TXOP_super, /* 75 */
TXOP_end, /* 76 */
TXOP_last
}; /* enum tx_opcode_t */
static const U8 tx_oparg[] = {
0U, /* noop */
0U, /* move_to_sb */
0U, /* move_from_sb */
TXCODE_W_VAR, /* save_to_lvar */
TXCODE_W_VAR, /* load_lvar */
TXCODE_W_VAR, /* load_lvar_to_sb */
TXCODE_W_KEY, /* localize_s */
0U, /* localize_vars */
0U, /* push */
0U, /* pushmark */
0U, /* nil */
TXCODE_W_SV, /* literal */
TXCODE_W_SVIV, /* literal_i */
TXCODE_W_KEY, /* fetch_s */
0U, /* fetch_field */
TXCODE_W_KEY, /* fetch_field_s */
0U, /* print */
0U, /* print_raw */
TXCODE_W_SV, /* print_raw_s */
0U, /* include */
0U, /* find_file */
0U, /* suffix */
TXCODE_W_VAR, /* for_start */
TXCODE_GOTO, /* for_iter */
0U, /* add */
0U, /* sub */
0U, /* mul */
0U, /* div */
0U, /* mod */
TXCODE_W_SV, /* concat */
TXCODE_W_SV, /* repeat */
0U, /* bitor */
0U, /* bitand */
0U, /* bitxor */
0U, /* bitneg */
TXCODE_GOTO, /* and */
TXCODE_GOTO, /* dand */
TXCODE_GOTO, /* or */
TXCODE_GOTO, /* dor */
0U, /* not */
0U, /* minus */
0U, /* max_index */
0U, /* builtin_mark_raw */
0U, /* builtin_unmark_raw */
0U, /* builtin_uri_escape */
0U, /* builtin_is_array_ref */
0U, /* builtin_is_hash_ref */
0U, /* builtin_html_escape */
0U, /* is_code_ref */
0U, /* merge_hash */
0U, /* match */
0U, /* eq */
0U, /* ne */
0U, /* lt */
0U, /* le */
0U, /* gt */
0U, /* ge */
0U, /* ncmp */
0U, /* scmp */
0U, /* range */
TXCODE_W_KEY, /* fetch_symbol */
0U, /* funcall */
0U, /* macro_end */
TXCODE_W_KEY, /* methodcall_s */
0U, /* make_array */
0U, /* make_hash */
0U, /* enter */
0U, /* leave */
TXCODE_GOTO, /* goto */
0U, /* vars */
TXCODE_W_SV, /* depend */
TXCODE_W_KEY, /* macro_begin */
TXCODE_W_SVIV, /* macro_nargs */
TXCODE_W_SVIV, /* macro_outer */
0U, /* set_opinfo */
0U, /* super */
0U, /* end */
}; /* 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_to_sb), newSViv(TXOP_move_to_sb));
(void)hv_stores(ops, STRINGIFY(move_from_sb), newSViv(TXOP_move_from_sb));
(void)hv_stores(ops, STRINGIFY(save_to_lvar), newSViv(TXOP_save_to_lvar));
(void)hv_stores(ops, STRINGIFY(load_lvar), newSViv(TXOP_load_lvar));
(void)hv_stores(ops, STRINGIFY(load_lvar_to_sb), newSViv(TXOP_load_lvar_to_sb));
(void)hv_stores(ops, STRINGIFY(localize_s), newSViv(TXOP_localize_s));
(void)hv_stores(ops, STRINGIFY(localize_vars), newSViv(TXOP_localize_vars));
(void)hv_stores(ops, STRINGIFY(push), newSViv(TXOP_push));
(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_s), newSViv(TXOP_fetch_s));
(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_raw), newSViv(TXOP_print_raw));
(void)hv_stores(ops, STRINGIFY(print_raw_s), newSViv(TXOP_print_raw_s));
(void)hv_stores(ops, STRINGIFY(include), newSViv(TXOP_include));
(void)hv_stores(ops, STRINGIFY(find_file), newSViv(TXOP_find_file));
(void)hv_stores(ops, STRINGIFY(suffix), newSViv(TXOP_suffix));
(void)hv_stores(ops, STRINGIFY(for_start), newSViv(TXOP_for_start));
(void)hv_stores(ops, STRINGIFY(for_iter), newSViv(TXOP_for_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(repeat), newSViv(TXOP_repeat));
(void)hv_stores(ops, STRINGIFY(bitor), newSViv(TXOP_bitor));
(void)hv_stores(ops, STRINGIFY(bitand), newSViv(TXOP_bitand));
(void)hv_stores(ops, STRINGIFY(bitxor), newSViv(TXOP_bitxor));
(void)hv_stores(ops, STRINGIFY(bitneg), newSViv(TXOP_bitneg));
(void)hv_stores(ops, STRINGIFY(and), newSViv(TXOP_and));
(void)hv_stores(ops, STRINGIFY(dand), newSViv(TXOP_dand));
(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(minus), newSViv(TXOP_minus));
(void)hv_stores(ops, STRINGIFY(max_index), newSViv(TXOP_max_index));
(void)hv_stores(ops, STRINGIFY(builtin_mark_raw), newSViv(TXOP_builtin_mark_raw));
(void)hv_stores(ops, STRINGIFY(builtin_unmark_raw), newSViv(TXOP_builtin_unmark_raw));
(void)hv_stores(ops, STRINGIFY(builtin_uri_escape), newSViv(TXOP_builtin_uri_escape));
(void)hv_stores(ops, STRINGIFY(builtin_is_array_ref), newSViv(TXOP_builtin_is_array_ref));
(void)hv_stores(ops, STRINGIFY(builtin_is_hash_ref), newSViv(TXOP_builtin_is_hash_ref));
(void)hv_stores(ops, STRINGIFY(builtin_html_escape), newSViv(TXOP_builtin_html_escape));
(void)hv_stores(ops, STRINGIFY(is_code_ref), newSViv(TXOP_is_code_ref));
(void)hv_stores(ops, STRINGIFY(merge_hash), newSViv(TXOP_merge_hash));
(void)hv_stores(ops, STRINGIFY(match), newSViv(TXOP_match));
(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(ncmp), newSViv(TXOP_ncmp));
(void)hv_stores(ops, STRINGIFY(scmp), newSViv(TXOP_scmp));
(void)hv_stores(ops, STRINGIFY(range), newSViv(TXOP_range));
(void)hv_stores(ops, STRINGIFY(fetch_symbol), newSViv(TXOP_fetch_symbol));
(void)hv_stores(ops, STRINGIFY(funcall), newSViv(TXOP_funcall));
(void)hv_stores(ops, STRINGIFY(macro_end), newSViv(TXOP_macro_end));
(void)hv_stores(ops, STRINGIFY(methodcall_s), newSViv(TXOP_methodcall_s));
(void)hv_stores(ops, STRINGIFY(make_array), newSViv(TXOP_make_array));
(void)hv_stores(ops, STRINGIFY(make_hash), newSViv(TXOP_make_hash));
(void)hv_stores(ops, STRINGIFY(enter), newSViv(TXOP_enter));
(void)hv_stores(ops, STRINGIFY(leave), newSViv(TXOP_leave));
(void)hv_stores(ops, STRINGIFY(goto), newSViv(TXOP_goto));
(void)hv_stores(ops, STRINGIFY(vars), newSViv(TXOP_vars));
(void)hv_stores(ops, STRINGIFY(depend), newSViv(TXOP_depend));
(void)hv_stores(ops, STRINGIFY(macro_begin), newSViv(TXOP_macro_begin));
(void)hv_stores(ops, STRINGIFY(macro_nargs), newSViv(TXOP_macro_nargs));
(void)hv_stores(ops, STRINGIFY(macro_outer), newSViv(TXOP_macro_outer));
(void)hv_stores(ops, STRINGIFY(set_opinfo), newSViv(TXOP_set_opinfo));
(void)hv_stores(ops, STRINGIFY(super), newSViv(TXOP_super));
(void)hv_stores(ops, STRINGIFY(end), newSViv(TXOP_end));
} /* tx_register_ops() */
#ifndef TX_DIRECT_THREADED_CODE
#define dTX_optable dNOOP
static const tx_exec_t tx_optable[] = {
TXCODE_noop,
TXCODE_move_to_sb,
TXCODE_move_from_sb,
TXCODE_save_to_lvar,
TXCODE_load_lvar,
TXCODE_load_lvar_to_sb,
TXCODE_localize_s,
TXCODE_localize_vars,
TXCODE_push,
TXCODE_pushmark,
TXCODE_nil,
TXCODE_literal,
TXCODE_literal_i,
TXCODE_fetch_s,
TXCODE_fetch_field,
TXCODE_fetch_field_s,
TXCODE_print,
TXCODE_print_raw,
TXCODE_print_raw_s,
TXCODE_include,
TXCODE_find_file,
TXCODE_suffix,
TXCODE_for_start,
TXCODE_for_iter,
TXCODE_add,
TXCODE_sub,
TXCODE_mul,
TXCODE_div,
TXCODE_mod,
TXCODE_concat,
TXCODE_repeat,
TXCODE_bitor,
TXCODE_bitand,
TXCODE_bitxor,
TXCODE_bitneg,
TXCODE_and,
TXCODE_dand,
TXCODE_or,
TXCODE_dor,
TXCODE_not,
TXCODE_minus,
TXCODE_max_index,
TXCODE_builtin_mark_raw,
TXCODE_builtin_unmark_raw,
TXCODE_builtin_uri_escape,
TXCODE_builtin_is_array_ref,
TXCODE_builtin_is_hash_ref,
TXCODE_builtin_html_escape,
TXCODE_is_code_ref,
TXCODE_merge_hash,
TXCODE_match,
TXCODE_eq,
TXCODE_ne,
TXCODE_lt,
TXCODE_le,
TXCODE_gt,
TXCODE_ge,
TXCODE_ncmp,
TXCODE_scmp,
TXCODE_range,
TXCODE_fetch_symbol,
TXCODE_funcall,
TXCODE_macro_end,
TXCODE_methodcall_s,
TXCODE_make_array,
TXCODE_make_hash,
TXCODE_enter,
TXCODE_leave,
TXCODE_goto,
TXCODE_vars,
TXCODE_depend,
TXCODE_macro_begin,
TXCODE_macro_nargs,
TXCODE_macro_outer,
TXCODE_set_opinfo,
TXCODE_super,
TXCODE_end,
NULL
}; /* tx_optable[] */
#else /* TX_DIRECT_THREADED_CODE */
#define dTX_optable void const* const* const tx_optable \
= tx_runops(aTHX_ NULL)
#define LABEL(x) CAT2(TX_DTC_, x)
#define LABEL_PTR(x) &&LABEL(x)
static void const* const*
tx_runops(pTHX_ tx_state_t* const st) {
static const void* const ops_address_table[] = {
LABEL_PTR(noop),
LABEL_PTR(move_to_sb),
LABEL_PTR(move_from_sb),
LABEL_PTR(save_to_lvar),
LABEL_PTR(load_lvar),
LABEL_PTR(load_lvar_to_sb),
LABEL_PTR(localize_s),
LABEL_PTR(localize_vars),
LABEL_PTR(push),
LABEL_PTR(pushmark),
LABEL_PTR(nil),
LABEL_PTR(literal),
LABEL_PTR(literal_i),
LABEL_PTR(fetch_s),
LABEL_PTR(fetch_field),
LABEL_PTR(fetch_field_s),
LABEL_PTR(print),
LABEL_PTR(print_raw),
LABEL_PTR(print_raw_s),
LABEL_PTR(include),
LABEL_PTR(find_file),
LABEL_PTR(suffix),
LABEL_PTR(for_start),
LABEL_PTR(for_iter),
LABEL_PTR(add),
LABEL_PTR(sub),
LABEL_PTR(mul),
LABEL_PTR(div),
LABEL_PTR(mod),
LABEL_PTR(concat),
LABEL_PTR(repeat),
LABEL_PTR(bitor),
LABEL_PTR(bitand),
LABEL_PTR(bitxor),
LABEL_PTR(bitneg),
LABEL_PTR(and),
LABEL_PTR(dand),
LABEL_PTR(or),
LABEL_PTR(dor),
LABEL_PTR(not),
LABEL_PTR(minus),
LABEL_PTR(max_index),
LABEL_PTR(builtin_mark_raw),
LABEL_PTR(builtin_unmark_raw),
LABEL_PTR(builtin_uri_escape),
LABEL_PTR(builtin_is_array_ref),
LABEL_PTR(builtin_is_hash_ref),
LABEL_PTR(builtin_html_escape),
LABEL_PTR(is_code_ref),
LABEL_PTR(merge_hash),
LABEL_PTR(match),
LABEL_PTR(eq),
LABEL_PTR(ne),
LABEL_PTR(lt),
LABEL_PTR(le),
LABEL_PTR(gt),
LABEL_PTR(ge),
LABEL_PTR(ncmp),
LABEL_PTR(scmp),
LABEL_PTR(range),
LABEL_PTR(fetch_symbol),
LABEL_PTR(funcall),
LABEL_PTR(macro_end),
LABEL_PTR(methodcall_s),
LABEL_PTR(make_array),
LABEL_PTR(make_hash),
LABEL_PTR(enter),
LABEL_PTR(leave),
LABEL_PTR(goto),
LABEL_PTR(vars),
LABEL_PTR(depend),
LABEL_PTR(macro_begin),
LABEL_PTR(macro_nargs),
LABEL_PTR(macro_outer),
LABEL_PTR(set_opinfo),
LABEL_PTR(super),
LABEL_PTR(end)
}; /* end of ops_address_table */
if(UNLIKELY(st == NULL)) {
return ops_address_table;
}
goto *(st->pc->exec_code); /* start */
/* dispatch */
LABEL(noop ): TXCODE_noop (aTHX_ st); goto *(st->pc->exec_code);
LABEL(move_to_sb ): TXCODE_move_to_sb (aTHX_ st); goto *(st->pc->exec_code);
LABEL(move_from_sb ): TXCODE_move_from_sb (aTHX_ st); goto *(st->pc->exec_code);
LABEL(save_to_lvar ): TXCODE_save_to_lvar (aTHX_ st); goto *(st->pc->exec_code);
LABEL(load_lvar ): TXCODE_load_lvar (aTHX_ st); goto *(st->pc->exec_code);
LABEL(load_lvar_to_sb ): TXCODE_load_lvar_to_sb (aTHX_ st); goto *(st->pc->exec_code);
LABEL(localize_s ): TXCODE_localize_s (aTHX_ st); goto *(st->pc->exec_code);
LABEL(localize_vars ): TXCODE_localize_vars (aTHX_ st); goto *(st->pc->exec_code);
LABEL(push ): TXCODE_push (aTHX_ st); goto *(st->pc->exec_code);
LABEL(pushmark ): TXCODE_pushmark (aTHX_ st); goto *(st->pc->exec_code);
LABEL(nil ): TXCODE_nil (aTHX_ st); goto *(st->pc->exec_code);
LABEL(literal ): TXCODE_literal (aTHX_ st); goto *(st->pc->exec_code);
LABEL(literal_i ): TXCODE_literal_i (aTHX_ st); goto *(st->pc->exec_code);
LABEL(fetch_s ): TXCODE_fetch_s (aTHX_ st); goto *(st->pc->exec_code);
LABEL(fetch_field ): TXCODE_fetch_field (aTHX_ st); goto *(st->pc->exec_code);
LABEL(fetch_field_s ): TXCODE_fetch_field_s (aTHX_ st); goto *(st->pc->exec_code);
LABEL(print ): TXCODE_print (aTHX_ st); goto *(st->pc->exec_code);
LABEL(print_raw ): TXCODE_print_raw (aTHX_ st); goto *(st->pc->exec_code);
LABEL(print_raw_s ): TXCODE_print_raw_s (aTHX_ st); goto *(st->pc->exec_code);
LABEL(include ): TXCODE_include (aTHX_ st); goto *(st->pc->exec_code);
LABEL(find_file ): TXCODE_find_file (aTHX_ st); goto *(st->pc->exec_code);
LABEL(suffix ): TXCODE_suffix (aTHX_ st); goto *(st->pc->exec_code);
LABEL(for_start ): TXCODE_for_start (aTHX_ st); goto *(st->pc->exec_code);
LABEL(for_iter ): TXCODE_for_iter (aTHX_ st); goto *(st->pc->exec_code);
LABEL(add ): TXCODE_add (aTHX_ st); goto *(st->pc->exec_code);
LABEL(sub ): TXCODE_sub (aTHX_ st); goto *(st->pc->exec_code);
LABEL(mul ): TXCODE_mul (aTHX_ st); goto *(st->pc->exec_code);
LABEL(div ): TXCODE_div (aTHX_ st); goto *(st->pc->exec_code);
LABEL(mod ): TXCODE_mod (aTHX_ st); goto *(st->pc->exec_code);
LABEL(concat ): TXCODE_concat (aTHX_ st); goto *(st->pc->exec_code);
LABEL(repeat ): TXCODE_repeat (aTHX_ st); goto *(st->pc->exec_code);
LABEL(bitor ): TXCODE_bitor (aTHX_ st); goto *(st->pc->exec_code);
LABEL(bitand ): TXCODE_bitand (aTHX_ st); goto *(st->pc->exec_code);
LABEL(bitxor ): TXCODE_bitxor (aTHX_ st); goto *(st->pc->exec_code);
LABEL(bitneg ): TXCODE_bitneg (aTHX_ st); goto *(st->pc->exec_code);
LABEL(and ): TXCODE_and (aTHX_ st); goto *(st->pc->exec_code);
LABEL(dand ): TXCODE_dand (aTHX_ st); goto *(st->pc->exec_code);
LABEL(or ): TXCODE_or (aTHX_ st); goto *(st->pc->exec_code);
LABEL(dor ): TXCODE_dor (aTHX_ st); goto *(st->pc->exec_code);
LABEL(not ): TXCODE_not (aTHX_ st); goto *(st->pc->exec_code);
LABEL(minus ): TXCODE_minus (aTHX_ st); goto *(st->pc->exec_code);
LABEL(max_index ): TXCODE_max_index (aTHX_ st); goto *(st->pc->exec_code);
LABEL(builtin_mark_raw ): TXCODE_builtin_mark_raw (aTHX_ st); goto *(st->pc->exec_code);
LABEL(builtin_unmark_raw ): TXCODE_builtin_unmark_raw (aTHX_ st); goto *(st->pc->exec_code);
LABEL(builtin_uri_escape ): TXCODE_builtin_uri_escape (aTHX_ st); goto *(st->pc->exec_code);
LABEL(builtin_is_array_ref): TXCODE_builtin_is_array_ref(aTHX_ st); goto *(st->pc->exec_code);
LABEL(builtin_is_hash_ref ): TXCODE_builtin_is_hash_ref (aTHX_ st); goto *(st->pc->exec_code);
LABEL(builtin_html_escape ): TXCODE_builtin_html_escape (aTHX_ st); goto *(st->pc->exec_code);
LABEL(is_code_ref ): TXCODE_is_code_ref (aTHX_ st); goto *(st->pc->exec_code);
LABEL(merge_hash ): TXCODE_merge_hash (aTHX_ st); goto *(st->pc->exec_code);
LABEL(match ): TXCODE_match (aTHX_ st); goto *(st->pc->exec_code);
LABEL(eq ): TXCODE_eq (aTHX_ st); goto *(st->pc->exec_code);
LABEL(ne ): TXCODE_ne (aTHX_ st); goto *(st->pc->exec_code);
LABEL(lt ): TXCODE_lt (aTHX_ st); goto *(st->pc->exec_code);
LABEL(le ): TXCODE_le (aTHX_ st); goto *(st->pc->exec_code);
LABEL(gt ): TXCODE_gt (aTHX_ st); goto *(st->pc->exec_code);
LABEL(ge ): TXCODE_ge (aTHX_ st); goto *(st->pc->exec_code);
LABEL(ncmp ): TXCODE_ncmp (aTHX_ st); goto *(st->pc->exec_code);
LABEL(scmp ): TXCODE_scmp (aTHX_ st); goto *(st->pc->exec_code);
LABEL(range ): TXCODE_range (aTHX_ st); goto *(st->pc->exec_code);
LABEL(fetch_symbol ): TXCODE_fetch_symbol (aTHX_ st); goto *(st->pc->exec_code);
LABEL(funcall ): TXCODE_funcall (aTHX_ st); goto *(st->pc->exec_code);
LABEL(macro_end ): TXCODE_macro_end (aTHX_ st); goto *(st->pc->exec_code);
LABEL(methodcall_s ): TXCODE_methodcall_s (aTHX_ st); goto *(st->pc->exec_code);
LABEL(make_array ): TXCODE_make_array (aTHX_ st); goto *(st->pc->exec_code);
LABEL(make_hash ): TXCODE_make_hash (aTHX_ st); goto *(st->pc->exec_code);
LABEL(enter ): TXCODE_enter (aTHX_ st); goto *(st->pc->exec_code);
LABEL(leave ): TXCODE_leave (aTHX_ st); goto *(st->pc->exec_code);
LABEL(goto ): TXCODE_goto (aTHX_ st); goto *(st->pc->exec_code);
LABEL(vars ): TXCODE_vars (aTHX_ st); goto *(st->pc->exec_code);
LABEL(depend ): TXCODE_depend (aTHX_ st); goto *(st->pc->exec_code);
LABEL(macro_begin ): TXCODE_macro_begin (aTHX_ st); goto *(st->pc->exec_code);
LABEL(macro_nargs ): TXCODE_macro_nargs (aTHX_ st); goto *(st->pc->exec_code);
LABEL(macro_outer ): TXCODE_macro_outer (aTHX_ st); goto *(st->pc->exec_code);
LABEL(set_opinfo ): TXCODE_set_opinfo (aTHX_ st); goto *(st->pc->exec_code);
LABEL(super ): TXCODE_super (aTHX_ st); goto *(st->pc->exec_code);
LABEL(end): TXCODE_end(aTHX_ st);
return NULL;
} /* end of tx_runops() */
#undef LABEL
#undef LABEL_PTR
#endif /* TX_DIRECT_THREADED_CODE */
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment