[svn:parrot] r41352 - branches/kill_jit/src

darbelo at svn.parrot.org darbelo at svn.parrot.org
Sat Sep 19 05:19:38 UTC 2009


Author: darbelo
Date: Sat Sep 19 05:19:37 2009
New Revision: 41352
URL: https://trac.parrot.org/parrot/changeset/41352

Log:
Another batch of JIT leftovers removed.

Modified:
   branches/kill_jit/src/frame_builder.c
   branches/kill_jit/src/frame_builder.h

Modified: branches/kill_jit/src/frame_builder.c
==============================================================================
--- branches/kill_jit/src/frame_builder.c	Sat Sep 19 03:27:17 2009	(r41351)
+++ branches/kill_jit/src/frame_builder.c	Sat Sep 19 05:19:37 2009	(r41352)
@@ -460,387 +460,7 @@
     emitm_jumpl(jit_info->native_ptr, 0xc0def00d);
 }
 
-#  define CONST(i) (int *)(jit_info->cur_op[i] * \
-       sizeof (PackFile_Constant) + \
-       offsetof(PackFile_Constant, u))
-
-/* for vtable calls registers are already saved back */
-void
-Parrot_jit_vtable_n_op(Parrot_jit_info_t *jit_info,
-                PARROT_INTERP, int n, int *args)
-{
-    int        nvtable = NULL; /*op_jit[*jit_info->cur_op].extcall;*/
-    size_t     offset;
-    op_info_t *op_info = &interp->op_info_table[*jit_info->cur_op];
-    int        pi;
-    int        idx, i, op;
-    int        st      = 0;         /* stack pop correction */
-    char      *L4      = NULL;
-
-    /* get the offset of the first vtable func */
-    offset  = offsetof(VTABLE, absolute);
-    offset += nvtable * sizeof (void *);
-    op      = *jit_info->cur_op;
-
-    /* get params $i, 0 is opcode */
-    for (idx = n; idx > 0; idx--) {
-        i  = args[idx-1];
-        pi = *(jit_info->cur_op + i);
-
-        switch (op_info->types[i - 1]) {
-            case PARROT_ARG_S:
-                emitm_movl_m_r(interp, jit_info->native_ptr,
-                        emit_EAX, emit_EBX, emit_None, 1, REG_OFFS_STR(pi));
-                emitm_pushl_r(jit_info->native_ptr, emit_EAX);
-                break;
-            case PARROT_ARG_K:
-            case PARROT_ARG_P:
-                emitm_movl_m_r(interp, jit_info->native_ptr,
-                        emit_EAX, emit_EBX, emit_None, 1, REG_OFFS_PMC(pi));
-                /* push $i, the left most Pi stays in eax, which is used
-                 * below, to call the vtable method
-                 */
-                emitm_pushl_r(jit_info->native_ptr, emit_EAX);
-                break;
-            case PARROT_ARG_KI:
-            case PARROT_ARG_I:
-                if (MAP(i))
-                    emitm_pushl_r(jit_info->native_ptr, MAP(i));
-                else {
-                    emitm_movl_m_r(interp, jit_info->native_ptr,
-                            emit_EAX, emit_EBX, emit_None, 1, REG_OFFS_INT(pi));
-                    emitm_pushl_r(jit_info->native_ptr, emit_EAX);
-                }
-                break;
-                break;
-            case PARROT_ARG_KIC:
-            case PARROT_ARG_IC:
-                /* XXX INTVAL_SIZE */
-                /* push value */
-                emitm_pushl_i(jit_info->native_ptr, pi);
-                break;
-            case PARROT_ARG_N:
-                /* push num on st(0) */
-                if (MAP(i))
-                    emitm_fld(jit_info->native_ptr, MAP(i));
-                else
-                    jit_emit_fload_mb_n(interp, jit_info->native_ptr,
-                            emit_EBX, REG_OFFS_NUM(pi));
-                goto store;
-            case PARROT_ARG_NC:
-                /*
-                 * TODO not all constants are shared between interpreters
-                 */
-                    jit_emit_fload_m_n(interp, jit_info->native_ptr,
-                            &interp->code->const_table->
-                            constants[pi]->u.number);
-store:
-                /* make room for double */
-                emitm_addb_i_r(jit_info->native_ptr, -8, emit_ESP);
-                emitm_fstpl(interp, jit_info->native_ptr, emit_ESP, emit_None, 1, 0);
-                /* additional stack adjustment */
-                st += 4;
-                break;
-
-            case PARROT_ARG_SC:
-                    emitm_pushl_i(jit_info->native_ptr,
-                            interp->code->const_table->
-                            constants[pi]->u.string);
-                break;
-
-            case PARROT_ARG_KC:
-            case PARROT_ARG_PC:
-                    emitm_pushl_i(jit_info->native_ptr,
-                            interp->code->const_table->
-                            constants[pi]->u.key);
-                break;
-
-            default:
-                Parrot_ex_throw_from_c_args(interp, NULL, 1,
-                    "jit_vtable_n_op: unimp type %d, arg %d vtable %d",
-                    op_info->types[i - 1], i, nvtable);
-                break;
-        }
-    }
-
-    /* push interpreter */
-    Parrot_jit_emit_get_INTERP(interp, jit_info->native_ptr, emit_ECX);
-    emitm_pushl_r(jit_info->native_ptr, emit_ECX);
-
-    if (L4) {
-        emitm_callr(jit_info->native_ptr, emit_ESI);
-    }
-    else {
-        /* mov (offs)%eax, %eax i.e. $1->vtable */
-        emitm_movl_m_r(interp, jit_info->native_ptr, emit_EAX, emit_EAX, emit_None, 1,
-                offsetof(struct PMC, vtable));
-        /* call *(offset)eax */
-        emitm_callm(jit_info->native_ptr, emit_EAX, emit_None, emit_None, offset);
-    }
-
-    emitm_addb_i_r(jit_info->native_ptr,
-            st + sizeof (void *) * (n + 1), emit_ESP);
-
-    /* L4: */
-    if (L4)
-        L4[1] = (char)(jit_info->native_ptr - L4 - 2);
-}
-
-void
-Parrot_jit_store_retval(Parrot_jit_info_t *jit_info,
-                     PARROT_INTERP)
-{
-    op_info_t *op_info = &interp->op_info_table[*jit_info->cur_op];
-    int p1 = *(jit_info->cur_op + 1);
-
-    /* return result is in EAX or ST(0) */
-    switch (op_info->types[0]) {
-        case PARROT_ARG_I:
-            emitm_movl_r_m(interp, jit_info->native_ptr,
-                    emit_EAX, emit_EBX, emit_None, 1, REG_OFFS_INT(p1));
-            break;
-        case PARROT_ARG_S:
-            emitm_movl_r_m(interp, jit_info->native_ptr,
-                    emit_EAX, emit_EBX, emit_None, 1, REG_OFFS_STR(p1));
-            break;
-        case PARROT_ARG_P:
-            emitm_movl_r_m(interp, jit_info->native_ptr,
-                    emit_EAX, emit_EBX, emit_None, 1, REG_OFFS_PMC(p1));
-            break;
-        case PARROT_ARG_N:
-            jit_emit_fstore_mb_n(interp, jit_info->native_ptr, emit_EBX,
-                    REG_OFFS_NUM(p1));
-            break;
-        default:
-            Parrot_ex_throw_from_c_args(interp, NULL, 1, "jit_vtable1r: ill LHS");
-            break;
-    }
-}
-
-/* emit a call to a vtable func
- * $1->vtable(interp, $1)
- */
-void
-Parrot_jit_vtable1_op(Parrot_jit_info_t *jit_info,
-                     PARROT_INTERP)
-{
-    int a[] = { 1 };
-    Parrot_jit_vtable_n_op(jit_info, interp, 1, a);
-}
-
-/* emit a call to a vtable func
- * $1 = $2->vtable(interp, $2)
- */
-void
-Parrot_jit_vtable1r_op(Parrot_jit_info_t *jit_info,
-                     PARROT_INTERP)
-{
-    int a[] = { 2 };
-    Parrot_jit_vtable_n_op(jit_info, interp, 1, a);
-    Parrot_jit_store_retval(jit_info, interp);
-}
-
-
-/* emit a call to a vtable func
- * $1 = $2->vtable(interp, $2, $3)
- */
-void
-Parrot_jit_vtable_1r223_op(Parrot_jit_info_t *jit_info,
-                     PARROT_INTERP)
-{
-    int a[] = { 2 , 3};
-    Parrot_jit_vtable_n_op(jit_info, interp, 2, a);
-    Parrot_jit_store_retval(jit_info, interp);
-}
-
-/* emit a call to a vtable func
- * $1 = $3->vtable(interp, $3, $2)
- */
-void
-Parrot_jit_vtable_1r332_op(Parrot_jit_info_t *jit_info,
-                     PARROT_INTERP)
-{
-    int a[] = { 3 , 2};
-    Parrot_jit_vtable_n_op(jit_info, interp, 2, a);
-    Parrot_jit_store_retval(jit_info, interp);
-}
-/* emit a call to a vtable func
- * $1->vtable(interp, $1, $2)
- */
-void
-Parrot_jit_vtable_112_op(Parrot_jit_info_t *jit_info,
-                     PARROT_INTERP)
-{
-    int a[] = { 1, 2 };
-    Parrot_jit_vtable_n_op(jit_info, interp, 2, a);
-}
-
-/* emit a call to a vtable func
- * $1->vtable(interp, $1, $1)
- */
-void
-Parrot_jit_vtable_111_op(Parrot_jit_info_t *jit_info,
-                     PARROT_INTERP)
-{
-    int a[] = { 1, 1 };
-    Parrot_jit_vtable_n_op(jit_info, interp, 2, a);
-}
-/* emit a call to a vtable func
- * $2->vtable(interp, $2, $1)
- */
-void
-Parrot_jit_vtable_221_op(Parrot_jit_info_t *jit_info,
-                     PARROT_INTERP)
-{
-    int a[] = { 2, 1 };
-    Parrot_jit_vtable_n_op(jit_info, interp, 2, a);
-}
-
-/* emit a call to a vtable func
- * $2->vtable(interp, $2, $3, $1)
- */
-void
-Parrot_jit_vtable_2231_op(Parrot_jit_info_t *jit_info,
-                     PARROT_INTERP)
-{
-    int a[] = { 2, 3, 1 };
-    Parrot_jit_vtable_n_op(jit_info, interp, 3, a);
-}
-
-/* emit a call to a vtable func
- * $1->vtable(interp, $1, $2, $3)
- */
-void
-Parrot_jit_vtable_1123_op(Parrot_jit_info_t *jit_info,
-                     PARROT_INTERP)
-{
-    int a[] = { 1, 2, 3 };
-    Parrot_jit_vtable_n_op(jit_info, interp, 3, a);
-}
-
-/* emit a call to a vtable func
- * $1->vtable(interp, $1, $2, $1)
- */
-void
-Parrot_jit_vtable_1121_op(Parrot_jit_info_t *jit_info,
-                     PARROT_INTERP)
-{
-    int a[] = { 1, 2, 1 };
-    Parrot_jit_vtable_n_op(jit_info, interp, 3, a);
-}
-
-
-/* if_p_ic, unless_p_ic */
-void
-Parrot_jit_vtable_if_unless_op(Parrot_jit_info_t *jit_info,
-                     PARROT_INTERP, int unless)
-{
-    int ic = *(jit_info->cur_op + 2);   /* branch offset */
-
-    /* emit call  vtable function i.e. get_bool, result eax */
-    Parrot_jit_vtable1_op(jit_info, interp);
-    /* test result */
-    jit_emit_test_r_i(jit_info->native_ptr, emit_EAX);
-    jit_emit_jcc(jit_info, unless ? emitm_jz : emitm_jnz, ic);
-}
-
-/* unless_p_ic */
-void
-Parrot_jit_vtable_unlessp_op(Parrot_jit_info_t *jit_info,
-                     PARROT_INTERP)
-{
-    Parrot_jit_vtable_if_unless_op(jit_info, interp, 1);
-}
-
-/* if_p_ic */
-void
-Parrot_jit_vtable_ifp_op(Parrot_jit_info_t *jit_info,
-                     PARROT_INTERP)
-{
-    Parrot_jit_vtable_if_unless_op(jit_info, interp, 0);
-}
-
-#  define CALL(f) Parrot_exec_add_text_rellocation_func(jit_info->objfile, \
-       jit_info->native_ptr, (f)); \
-       emitm_calll(jit_info->native_ptr, EXEC_CALLDISP);
-
-#  undef IREG
-#  undef NREG
-#  undef SREG
-#  undef PREG
-#  undef CONST
-#  undef CALL
-
 #  define NATIVECODE jit_info->native_ptr
-#  define CUR_OPCODE jit_info->cur_op
-#  define CONST(i) PCONST(jit_info->cur_op[(i)])
-
-void
-jit_get_params_pc(Parrot_jit_info_t *jit_info, PARROT_INTERP)
-{
-    PMC *sig_pmc;
-    INTVAL *sig_bits, i, n;
-
-    sig_pmc = Parrot_pcc_get_pmc_constant(interp, CURRENT_CONTEXT(interp), CUR_OPCODE[1]);
-    GETATTR_FixedIntegerArray_int_array(interp, sig_pmc, sig_bits);
-    n = VTABLE_elements(interp, sig_pmc);
-    jit_info->n_args = n;
-    emitm_movl_m_r(interp, NATIVECODE, emit_EAX, emit_EBP, emit_None, 1, 16);
-    for (i = 0; i < n; ++i) {
-        switch (sig_bits[i] & PARROT_ARG_TYPE_MASK) {
-            case PARROT_ARG_INTVAL:
-                emitm_movl_m_r(interp, NATIVECODE, MAP(2+i), emit_EAX, emit_None,
-                        1, 4 + i*4);
-                break;
-            case PARROT_ARG_FLOATVAL:
-                emitm_movl_m_r(interp, NATIVECODE, emit_EAX, emit_EAX, emit_None,
-                        1, 4+ i*4);
-                jit_emit_fload_mb_n(interp, NATIVECODE, emit_EAX, 0);
-                emitm_fstp(NATIVECODE, (MAP(2+i) + 1));
-                if (i < n - 1)
-                    emitm_movl_m_r(interp, NATIVECODE, emit_EAX, emit_EBP,
-                            emit_None, 1, 16);
-                break;
-            default:
-                break;
-        }
-    }
-}
-
-/*
- * preserve registers
- * a) all callee saved on function entry
- */
-void
-jit_save_regs(Parrot_jit_info_t *jit_info, PARROT_INTERP)
-{
-    int i, used_i, save_i;
-    const jit_arch_regs *reg_info;
-
-    used_i = Parrot_pcc_get_regs_used(interp, CURRENT_CONTEXT(interp), REGNO_INT);
-    reg_info = &jit_info->arch_info->regs[jit_info->code_type];
-    save_i = reg_info->n_preserved_I;
-    for (i = save_i; i < used_i; ++i) {
-        emitm_pushl_r(jit_info->native_ptr, reg_info->map_I[i]);
-    }
-}
-
-/* restore saved regs, see above */
-void
-jit_restore_regs(Parrot_jit_info_t *jit_info, PARROT_INTERP)
-{
-
-    int i, used_i, save_i;
-    const jit_arch_regs *reg_info;
-
-    used_i = Parrot_pcc_get_regs_used(interp, CURRENT_CONTEXT(interp), REGNO_INT);
-    reg_info = &jit_info->arch_info->regs[jit_info->code_type];
-    save_i = reg_info->n_preserved_I;
-    /* note - reversed order of jit_save_regs  */
-    for (i = used_i - 1; i >= save_i; --i) {
-        emitm_popl_r(jit_info->native_ptr, reg_info->map_I[i]);
-    }
-}
 
 /*
  * preserve registers around a functioncall
@@ -911,181 +531,8 @@
             (used_i * sizeof (INTVAL) + used_n * sizeof (FLOATVAL)));
 }
 
-void
-jit_set_returns_pc(Parrot_jit_info_t *jit_info, PARROT_INTERP,
-        int recursive)
-{
-    PMC *sig_pmc;
-    INTVAL *sig_bits, sig;
-
-    sig_pmc = Parrot_pcc_get_pmc_constant(interp, CURRENT_CONTEXT(interp), CUR_OPCODE[1]);
-    if (!VTABLE_elements(interp, sig_pmc))
-        return;
-    GETATTR_FixedIntegerArray_int_array(interp, sig_pmc, sig_bits);
-    sig = sig_bits[0];
-    if (!recursive) {
-        /* mov 16(%ebp), %eax - fetch args ptr */
-        emitm_movl_m_r(interp, NATIVECODE, emit_EAX, emit_EBP, emit_None, 1, 16);
-        emitm_movl_m_r(interp, NATIVECODE, emit_EAX, emit_EAX, emit_None, 1, 0);
-    }
-    /*
-     * recursive returns according to ABI */
-    switch (sig & (PARROT_ARG_TYPE_MASK|PARROT_ARG_CONSTANT)) {
-        case PARROT_ARG_INTVAL:
-            if (recursive) {
-                jit_emit_mov_rr_i(NATIVECODE, emit_EAX, MAP(2));
-            }
-            else {
-                emitm_movl_r_m(interp, NATIVECODE, MAP(2), emit_EAX, 0, 1, 0);
-            }
-            break;
-        case PARROT_ARG_INTVAL|PARROT_ARG_CONSTANT:
-            if (recursive) {
-                jit_emit_mov_ri_i(interp, NATIVECODE, emit_EAX, CUR_OPCODE[2]);
-            }
-            else {
-                emitm_movl_i_m(NATIVECODE, CUR_OPCODE[2], emit_EAX, 0, 1, 0);
-            }
-            break;
-        case PARROT_ARG_FLOATVAL:
-            if (recursive) {
-                jit_emit_mov_rr_n(NATIVECODE, FSR1, MAP(2));
-            }
-            else {
-                emitm_fld(NATIVECODE, MAP(2));
-                jit_emit_fstore_mb_n(interp, NATIVECODE, emit_EAX, 0);
-            }
-            break;
-        case PARROT_ARG_FLOATVAL|PARROT_ARG_CONSTANT:
-            if (recursive) {
-                jit_emit_mov_ri_n(interp, NATIVECODE, FSR1, &CONST(2)->u.number);
-            }
-            else {
-                jit_emit_mov_ri_n(interp, NATIVECODE, FSR1, &CONST(2)->u.number);
-                jit_emit_fstore_mb_n(interp, NATIVECODE, emit_EAX, 0);
-            }
-            break;
-        default:
-            Parrot_ex_throw_from_c_args(interp, NULL, 1,
-                "set_returns_jit - unknown typ");
-            break;
-    }
-}
-
-void
-jit_set_args_pc(Parrot_jit_info_t *jit_info, PARROT_INTERP,
-        int recursive)
-{
-    PMC *sig_args, *sig_params, *sig_result;
-    INTVAL *sig_bits, sig, i, n;
-    opcode_t *params, *result;
-    char params_map;
-    int skip, used_n;
-    char collision[16];
-    const jit_arch_regs *reg_info;
-
-    reg_info = &jit_info->arch_info->regs[jit_info->code_type];
-
-    /* create args array */
-    if (!recursive)
-        Parrot_ex_throw_from_c_args(interp, NULL, 1,
-            "set_args_jit - can't do that yet ");
-
-    sig_args  = Parrot_pcc_get_pmc_constant(interp, CURRENT_CONTEXT(interp), CUR_OPCODE[1]);
-
-    if (!VTABLE_elements(interp, sig_args))
-        return;
-    params = jit_info->optimizer->sections->begin;
-    sig_params = Parrot_pcc_get_pmc_constant(interp, CURRENT_CONTEXT(interp), params[1]);
-    ASSERT_SIG_PMC(sig_params);
-    GETATTR_FixedIntegerArray_int_array(interp, sig_args, sig_bits);
-    n = VTABLE_elements(interp, sig_args);
-    /*
-     * preserve registers - need get_results, because we skip the
-     * return value
-     */
-    result = CUR_OPCODE + 2 + n + 3; /* set_args, set_p_pc */
-    PARROT_ASSERT(*result == PARROT_OP_get_results_pc);
-    sig_result = Parrot_pcc_get_pmc_constant(interp, CURRENT_CONTEXT(interp), result[1]);
-    ASSERT_SIG_PMC(sig_result);
-
-    if (!VTABLE_elements(interp, sig_result))
-        skip = -1;
-    else
-        skip = MAP(2 + n + 3 + 2);
-    used_n = jit_save_regs_call(jit_info, interp, skip);
-    memset(collision, 0, 16);
-    for (i = 0; i < n; ++i) {
-        sig = sig_bits[i];
-        /* move args to params regs */
-        params_map = jit_info->optimizer->map_branch[2 + i];
-        switch (sig & (PARROT_ARG_TYPE_MASK|PARROT_ARG_CONSTANT)) {
-            case PARROT_ARG_INTVAL:
-                /* if the arg was already set,
-                 * we can't use the src again - fetch from stack
-                 *
-                 * XXX skip
-                 *
-                 * TODO write a general reg_move
-                 */
-                if (collision[(int)MAP(2+i)]) {
-                    int j;
-                    for (j = 0; j < reg_info->n_mapped_I; ++j) {
-                        if (reg_info->map_I[j] == MAP(2+i)) {
-                            emitm_movl_m_r(interp, NATIVECODE, params_map, emit_ESP,
-                                    emit_None, 1,
-                                    (used_n * sizeof (FLOATVAL) +
-                                     j  * sizeof (INTVAL)));
-                            break;
-                        }
-                    }
-                }
-                else {
-                    if (params_map != MAP(2+i)) {
-                        jit_emit_mov_rr_i(NATIVECODE, params_map, MAP(2 + i));
-                    }
-                }
-                collision[(int)params_map] = 1;
-                break;
-            case PARROT_ARG_INTVAL|PARROT_ARG_CONSTANT:
-                /* TODO move constants last */
-                jit_emit_mov_ri_i(interp, NATIVECODE, params_map, CUR_OPCODE[2 + i]);
-                break;
-            case PARROT_ARG_FLOATVAL:
-                if (collision[(int)MAP(2+i)]) {
-                    int j;
-                    for (j = 0; j < reg_info->n_mapped_F; ++j) {
-                        if (reg_info->map_F[j] == MAP(2+i)) {
-                            jit_emit_fload_mb_n(interp, NATIVECODE, emit_ESP,
-                                                (j * sizeof (FLOATVAL)));
-                            emitm_fstp(NATIVECODE, (1+params_map));
-                            break;
-                        }
-                    }
-                }
-                else {
-                    jit_emit_mov_rr_n(NATIVECODE, params_map, MAP(2 + i));
-                }
-                collision[(int)params_map] = 1;
-                break;
-            case PARROT_ARG_FLOATVAL|PARROT_ARG_CONSTANT:
-                jit_emit_mov_ri_n(interp, NATIVECODE, params_map,
-                        &CONST(2 + i)->u.number);
-                break;
-            default:
-                Parrot_ex_throw_from_c_args(interp, NULL, 1,
-                    "set_args_jit - unknown type");
-                break;
-        }
-    }
-}
-
-#  undef CONST
-
 int control_word = 0x27f;
 
-extern int jit_op_count(void);
-
 /*
  * params are put rigth to left on the stack
  * parrot registers are counted left to right

Modified: branches/kill_jit/src/frame_builder.h
==============================================================================
--- branches/kill_jit/src/frame_builder.h	Sat Sep 19 03:27:17 2009	(r41351)
+++ branches/kill_jit/src/frame_builder.h	Sat Sep 19 05:19:37 2009	(r41352)
@@ -1811,111 +1811,6 @@
     emitm_popl_r((pc), emit_EBP); \
 } while (0)
 
-#if JIT_VTABLE_OPS
-
-#  undef Parrot_jit_vtable1_op
-#  undef Parrot_jit_vtable1r_op
-
-#  undef Parrot_jit_vtable_111_op
-#  undef Parrot_jit_vtable_112_op
-#  undef Parrot_jit_vtable_221_op
-#  undef Parrot_jit_vtable_1121_op
-#  undef Parrot_jit_vtable_1123_op
-#  undef Parrot_jit_vtable_2231_op
-
-#  undef Parrot_jit_vtable_1r223_op
-#  undef Parrot_jit_vtable_1r332_op
-
-#  undef Parrot_jit_vtable_ifp_op
-#  undef Parrot_jit_vtable_unlessp_op
-#  undef Parrot_jit_vtable_newp_ic_op
-
-/* emit a call to a vtable func
- * $X->vtable(interp, $X [, $Y...])
- */
-#  define MAP(i) jit_info->optimizer->map_branch[jit_info->op_i + (i)]
-
-#  include "parrot/oplib/ops.h"
-
-INTVAL Parrot_FixedIntegerArray_get_integer_keyed_int(Interp*, PMC*, INTVAL);
-void Parrot_FixedIntegerArray_set_integer_keyed_int(Interp*, PMC*, INTVAL, INTVAL);
-
-char * jit_set_i_p_ki(Parrot_jit_info_t *jit_info, PARROT_INTERP,
-    size_t offset);
-
-char * jit_set_p_ki_i(Parrot_jit_info_t *jit_info, PARROT_INTERP,
-    size_t offset);
-
-/*
- * for vtable calls registers are already saved back
- */
-void Parrot_jit_vtable_n_op(Parrot_jit_info_t *jit_info, PARROT_INTERP,
-    int n, int *args);
-
-void Parrot_jit_store_retval(Parrot_jit_info_t *jit_info, PARROT_INTERP);
-
-/* emit a call to a vtable func
- * $1->vtable(interp, $1)
- */
-void Parrot_jit_vtable1_op(Parrot_jit_info_t *jit_info, PARROT_INTERP);
-
-/* emit a call to a vtable func
- * $1 = $2->vtable(interp, $2)
- */
-void Parrot_jit_vtable1r_op(Parrot_jit_info_t *jit_info, PARROT_INTERP);
-
-/* emit a call to a vtable func
- * $1 = $2->vtable(interp, $2, $3)
- */
-void Parrot_jit_vtable_1r223_op(Parrot_jit_info_t *jit_info, PARROT_INTERP);
-
-/* emit a call to a vtable func
- * $1 = $3->vtable(interp, $3, $2)
- */
-void Parrot_jit_vtable_1r332_op(Parrot_jit_info_t *jit_info, PARROT_INTERP);
-
-/* emit a call to a vtable func
- * $1->vtable(interp, $1, $2)
- */
-void Parrot_jit_vtable_112_op(Parrot_jit_info_t *jit_info, PARROT_INTERP);
-
-/* emit a call to a vtable func
- * $1->vtable(interp, $1, $1)
- */
-void Parrot_jit_vtable_111_op(Parrot_jit_info_t *jit_info, PARROT_INTERP);
-
-/* emit a call to a vtable func
- * $2->vtable(interp, $2, $1)
- */
-void Parrot_jit_vtable_221_op(Parrot_jit_info_t *jit_info, PARROT_INTERP);
-
-/* emit a call to a vtable func
- * $2->vtable(interp, $2, $3, $1)
- */
-void Parrot_jit_vtable_2231_op(Parrot_jit_info_t *jit_info, PARROT_INTERP);
-
-/* emit a call to a vtable func
- * $1->vtable(interp, $1, $2, $3)
- */
-void Parrot_jit_vtable_1123_op(Parrot_jit_info_t *jit_info, PARROT_INTERP);
-
-/* emit a call to a vtable func
- * $1->vtable(interp, $1, $2, $1)
- */
-void Parrot_jit_vtable_1121_op(Parrot_jit_info_t *jit_info, PARROT_INTERP);
-
-/* if_p_ic, unless_p_ic */
-void Parrot_jit_vtable_if_unless_op(Parrot_jit_info_t *jit_info,
-    PARROT_INTERP, int unless);
-
-/* unless_p_ic */
-void Parrot_jit_vtable_unlessp_op(Parrot_jit_info_t *jit_info, PARROT_INTERP);
-
-/* if_p_ic */
-void Parrot_jit_vtable_ifp_op(Parrot_jit_info_t *jit_info, PARROT_INTERP);
-
-#endif /* JIT_VTABLE_OPS */
-
 #  define jit_emit_end(pc) { \
        jit_emit_add_ri_i((interp), (pc), emit_ESP, 4); \
        emitm_popl_r((pc), emit_EDI); \


More information about the parrot-commits mailing list