[svn:parrot] r40898 - in branches/context_pmc3/src: . call jit/i386 runcore

bacek at svn.parrot.org bacek at svn.parrot.org
Mon Aug 31 22:49:23 UTC 2009


Author: bacek
Date: Mon Aug 31 22:49:22 2009
New Revision: 40898
URL: https://trac.parrot.org/parrot/changeset/40898

Log:
Use more accessor functions instead of CONTEXT_FIELD macro

Modified:
   branches/context_pmc3/src/call/pcc.c
   branches/context_pmc3/src/debug.c
   branches/context_pmc3/src/jit.c
   branches/context_pmc3/src/jit/i386/jit_defs.c
   branches/context_pmc3/src/packfile.c
   branches/context_pmc3/src/runcore/main.c

Modified: branches/context_pmc3/src/call/pcc.c
==============================================================================
--- branches/context_pmc3/src/call/pcc.c	Mon Aug 31 22:49:09 2009	(r40897)
+++ branches/context_pmc3/src/call/pcc.c	Mon Aug 31 22:49:22 2009	(r40898)
@@ -339,16 +339,6 @@
 /* Make sure we don't conflict with any other MAX() macros defined elsewhere */
 #define PARROT_MAX(a, b) (((a)) > (b) ? (a) : (b))
 
-#define SAVE_OFF_REGS(orig, next, save) \
-        CONTEXT_FIELD(interp, (save), bp)    = CONTEXT_FIELD(interp, (orig), bp);\
-        CONTEXT_FIELD(interp, (save), bp_ps) = CONTEXT_FIELD(interp, (orig), bp_ps);\
-        CONTEXT_FIELD(interp, (orig), bp)    = CONTEXT_FIELD(interp, (next), bp);\
-        CONTEXT_FIELD(interp, (orig), bp_ps) = CONTEXT_FIELD(interp, (next), bp_ps);
-
-#define RESTORE_REGS(orig, save) \
-        CONTEXT_FIELD(interp, (orig), bp)    = CONTEXT_FIELD(interp, (save), bp);\
-        CONTEXT_FIELD(interp, (orig), bp_ps) = CONTEXT_FIELD(interp, (save), bp_ps);
-
 /*
 
 =item C<PMC* Parrot_pcc_build_sig_object_from_varargs(PARROT_INTERP, PMC* obj,
@@ -564,7 +554,7 @@
     ASSERT_ARGS(Parrot_init_arg_indexes_and_sig_pmc)
     if (!sig_pmc && indexes) {
         ++indexes;
-        sig_pmc = CONTEXT_FIELD(interp, ctx, constants[*indexes])->u.key;
+        sig_pmc = Parrot_pcc_get_pmc_constant(interp, ctx, *indexes);
         ASSERT_SIG_PMC(sig_pmc);
         ++indexes;
     }
@@ -614,7 +604,7 @@
 
     if (pc) {
         ++pc;
-        sig_pmc = CONTEXT_FIELD(interp, ctx, constants[*pc])->u.key;
+        sig_pmc = Parrot_pcc_get_pmc_constant(interp, ctx, *pc);
         ASSERT_SIG_PMC(sig_pmc);
         ++pc;
     }

Modified: branches/context_pmc3/src/debug.c
==============================================================================
--- branches/context_pmc3/src/debug.c	Mon Aug 31 22:49:09 2009	(r40897)
+++ branches/context_pmc3/src/debug.c	Mon Aug 31 22:49:22 2009	(r40898)
@@ -2219,7 +2219,7 @@
 
     if (condition->type & PDB_cond_int) {
         INTVAL   i,  j;
-        if (condition->reg >= CONTEXT_FIELD(interp, ctx, n_regs_used[REGNO_INT]))
+        if (condition->reg >= Parrot_pcc_get_regs_used(interp, ctx, REGNO_INT))
             return 0;
         i = CTX_REG_INT(ctx, condition->reg);
 
@@ -2241,7 +2241,7 @@
     else if (condition->type & PDB_cond_num) {
         FLOATVAL k,  l;
 
-        if (condition->reg >= CONTEXT_FIELD(interp, ctx, n_regs_used[REGNO_NUM]))
+        if (condition->reg >= Parrot_pcc_get_regs_used(interp, ctx, REGNO_NUM))
             return 0;
         k = CTX_REG_NUM(ctx, condition->reg);
 
@@ -2263,7 +2263,7 @@
     else if (condition->type & PDB_cond_str) {
         STRING  *m, *n;
 
-        if (condition->reg >= CONTEXT_FIELD(interp, ctx, n_regs_used[REGNO_STR]))
+        if (condition->reg >= Parrot_pcc_get_regs_used(interp, ctx, REGNO_STR))
             return 0;
         m = CTX_REG_STR(ctx, condition->reg);
 
@@ -2294,7 +2294,7 @@
     else if (condition->type & PDB_cond_pmc) {
         PMC *m;
 
-        if (condition->reg >= CONTEXT_FIELD(interp, ctx, n_regs_used[REGNO_PMC]))
+        if (condition->reg >= Parrot_pcc_get_regs_used(interp, ctx, REGNO_PMC))
             return 0;
         m = CTX_REG_PMC(ctx, condition->reg);
 
@@ -3634,7 +3634,7 @@
     ASSERT_ARGS(GDB_print_reg)
     char * string;
 
-    if (n >= 0 && n < CURRENT_CONTEXT_FIELD(interp, n_regs_used[t])) {
+    if (n >= 0 && n < Parrot_pcc_get_regs_used(interp, CONTEXT(interp), t)) {
         switch (t) {
             case REGNO_INT:
                 return Parrot_str_from_int(interp, IREG(n))->strstart;
@@ -3699,7 +3699,7 @@
     }
     if (! s[1]) {
         /* Print all registers of this type. */
-        const int max_reg = CURRENT_CONTEXT_FIELD(interp, n_regs_used[t]);
+        const int max_reg = Parrot_pcc_get_regs_used(interp, CONTEXT(interp), t);
         int n;
 
         for (n = 0; n < max_reg; n++) {

Modified: branches/context_pmc3/src/jit.c
==============================================================================
--- branches/context_pmc3/src/jit.c	Mon Aug 31 22:49:09 2009	(r40897)
+++ branches/context_pmc3/src/jit.c	Mon Aug 31 22:49:22 2009	(r40898)
@@ -396,8 +396,10 @@
 {
     int typ;
 
-    cur_section->ru[0].registers_used = CURRENT_CONTEXT_FIELD(interp, n_regs_used[REGNO_INT]);
-    cur_section->ru[3].registers_used = CURRENT_CONTEXT_FIELD(interp, n_regs_used[REGNO_NUM]);
+    cur_section->ru[0].registers_used = Parrot_pcc_get_regs_used(interp,
+                                            CONTEXT(interp), REGNO_INT);
+    cur_section->ru[3].registers_used = Parrot_pcc_get_regs_used(interp,
+                                            CONTEXT(interp), REGNO_NUM);
     cur_section->ru[1].registers_used = cur_section->ru[2].registers_used = 0;
 
     for (typ = 0; typ < 4; typ++) {
@@ -1304,7 +1306,7 @@
 
             if (offs >= sub->start_offs && offs < sub->end_offs) {
                 for (i = 0; i < 4; i++)
-                    CURRENT_CONTEXT_FIELD(interp, n_regs_used[i]) = sub->n_regs_used[i];
+                    Parrot_pcc_set_regs_used(interp, CONTEXT(interp), i, sub->n_regs_used[i]);
 
                 return;
             }
@@ -1425,7 +1427,7 @@
 
     /* remember register usage */
     for (i = 0; i < 4; i++)
-        n_regs_used[i] = CURRENT_CONTEXT_FIELD(interp, n_regs_used[i]);
+        n_regs_used[i] = Parrot_pcc_get_regs_used(interp, CONTEXT(interp), i);
 
     set_reg_usage(interp, code_start);
 
@@ -1679,7 +1681,7 @@
 
     /* restore register usage */
     for (i = 0; i < 4; i++)
-        CURRENT_CONTEXT_FIELD(interp, n_regs_used[i]) = n_regs_used[i];
+        Parrot_pcc_set_regs_used(interp, CONTEXT(interp), i, n_regs_used[i]);
 
     /* Do fixups before converting offsets */
     (arch_info->jit_dofixup)(jit_info, interp);

Modified: branches/context_pmc3/src/jit/i386/jit_defs.c
==============================================================================
--- branches/context_pmc3/src/jit/i386/jit_defs.c	Mon Aug 31 22:49:09 2009	(r40897)
+++ branches/context_pmc3/src/jit/i386/jit_defs.c	Mon Aug 31 22:49:22 2009	(r40898)
@@ -1268,7 +1268,7 @@
     int i, used_i, save_i;
     const jit_arch_regs *reg_info;
 
-    used_i = CURRENT_CONTEXT_FIELD(interp, n_regs_used[REGNO_INT]);
+    used_i = Parrot_pcc_get_regs_used(interp, 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) {
@@ -1284,7 +1284,7 @@
     int i, used_i, save_i;
     const jit_arch_regs *reg_info;
 
-    used_i = CURRENT_CONTEXT_FIELD(interp, n_regs_used[REGNO_INT]);
+    used_i = Parrot_pcc_get_regs_used(interp, 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  */
@@ -1308,8 +1308,8 @@
     int i, used_i, used_n;
     const jit_arch_regs *reg_info;
 
-    used_i = CURRENT_CONTEXT_FIELD(interp, n_regs_used[REGNO_INT]);
-    used_n = CURRENT_CONTEXT_FIELD(interp, n_regs_used[REGNO_NUM]);
+    used_i = Parrot_pcc_get_regs_used(interp, CONTEXT(interp), REGNO_INT);
+    used_n = Parrot_pcc_get_regs_used(interp, CONTEXT(interp), REGNO_NUM);
     jit_emit_sub_ri_i(interp, jit_info->native_ptr, emit_ESP,
             (used_i * sizeof (INTVAL) + used_n * sizeof (FLOATVAL)));
     reg_info = &jit_info->arch_info->regs[jit_info->code_type];
@@ -1339,8 +1339,8 @@
     int i, used_i, used_n;
     const jit_arch_regs *reg_info;
 
-    used_i = CURRENT_CONTEXT_FIELD(interp, n_regs_used[REGNO_INT]);
-    used_n = CURRENT_CONTEXT_FIELD(interp, n_regs_used[REGNO_NUM]);
+    used_i = Parrot_pcc_get_regs_used(interp, CONTEXT(interp), REGNO_INT);
+    used_n = Parrot_pcc_get_regs_used(interp, CONTEXT(interp), REGNO_NUM);
     reg_info = &jit_info->arch_info->regs[jit_info->code_type];
 
     for (i = 0; i < used_i; ++i) {
@@ -1429,7 +1429,6 @@
 {
     PMC *sig_args, *sig_params, *sig_result;
     INTVAL *sig_bits, sig, i, n;
-    PackFile_Constant ** constants;
     opcode_t *params, *result;
     char params_map;
     int skip, used_n;
@@ -1443,13 +1442,12 @@
         Parrot_ex_throw_from_c_args(interp, NULL, 1,
             "set_args_jit - can't do that yet ");
 
-    constants = CURRENT_CONTEXT_FIELD(interp, constants);
-    sig_args  = constants[CUR_OPCODE[1]]->u.key;
+    sig_args  = Parrot_pcc_get_pmc_constant(interp, CONTEXT(interp), CUR_OPCODE[1]);
 
     if (!VTABLE_elements(interp, sig_args))
         return;
     params = jit_info->optimizer->sections->begin;
-    sig_params = constants[params[1]]->u.key;
+    sig_params = Parrot_pcc_get_pmc_constant(interp, CONTEXT(interp), params[1]);
     ASSERT_SIG_PMC(sig_params);
     GETATTR_FixedIntegerArray_int_array(interp, sig_args, sig_bits);
     n = VTABLE_elements(interp, sig_args);
@@ -1459,7 +1457,7 @@
      */
     result = CUR_OPCODE + 2 + n + 3; /* set_args, set_p_pc */
     PARROT_ASSERT(*result == PARROT_OP_get_results_pc);
-    sig_result = constants[result[1]]->u.key;
+    sig_result = Parrot_pcc_get_pmc_constant(interp, CONTEXT(interp), result[1]);
     ASSERT_SIG_PMC(sig_result);
 
     if (!VTABLE_elements(interp, sig_result))

Modified: branches/context_pmc3/src/packfile.c
==============================================================================
--- branches/context_pmc3/src/packfile.c	Mon Aug 31 22:49:09 2009	(r40897)
+++ branches/context_pmc3/src/packfile.c	Mon Aug 31 22:49:22 2009	(r40898)
@@ -681,7 +681,7 @@
     &&  interp->run_core != PARROT_FAST_CORE)
             interp->run_core = PARROT_FAST_CORE;
 
-    CURRENT_CONTEXT_FIELD(interp, constants) = interp->code->const_table->constants;
+    Parrot_pcc_set_constants(interp, CONTEXT(interp), interp->code->const_table->constants);
 
     retval           = (PMC *)Parrot_runops_fromc_args(interp, sub_pmc, "P");
     interp->run_core = old;
@@ -3083,9 +3083,9 @@
     }
 
     interp->code               = new_cs;
-    CURRENT_CONTEXT_FIELD(interp, constants) = really
+    Parrot_pcc_set_constants(interp, CONTEXT(interp), really
                                ? find_constants(interp, new_cs->const_table)
-                               : new_cs->const_table->constants;
+                               : new_cs->const_table->constants);
 
     /* new_cs->const_table->constants; */
     Parrot_pcc_set_pred_offset(interp, CONTEXT(interp),

Modified: branches/context_pmc3/src/runcore/main.c
==============================================================================
--- branches/context_pmc3/src/runcore/main.c	Mon Aug 31 22:49:09 2009	(r40897)
+++ branches/context_pmc3/src/runcore/main.c	Mon Aug 31 22:49:22 2009	(r40898)
@@ -188,10 +188,10 @@
     ASSERT_ARGS(prederef_args)
     const PackFile_ConstTable * const const_table = interp->code->const_table;
 
-    const int regs_n = CURRENT_CONTEXT_FIELD(interp, n_regs_used[REGNO_NUM]);
-    const int regs_i = CURRENT_CONTEXT_FIELD(interp, n_regs_used[REGNO_INT]);
-    const int regs_p = CURRENT_CONTEXT_FIELD(interp, n_regs_used[REGNO_PMC]);
-    const int regs_s = CURRENT_CONTEXT_FIELD(interp, n_regs_used[REGNO_STR]);
+    const int regs_n = Parrot_pcc_get_regs_used(interp, CONTEXT(interp), REGNO_NUM);
+    const int regs_i = Parrot_pcc_get_regs_used(interp, CONTEXT(interp), REGNO_INT);
+    const int regs_p = Parrot_pcc_get_regs_used(interp, CONTEXT(interp), REGNO_PMC);
+    const int regs_s = Parrot_pcc_get_regs_used(interp, CONTEXT(interp), REGNO_STR);
 
     /* prederef var part too */
     const int m = opinfo->op_count;


More information about the parrot-commits mailing list