[svn:parrot] r40906 - in branches/context_pmc3: compilers/imcc lib/Parrot/OpTrans lib/Parrot/Ops2c src/call src/ops

bacek at svn.parrot.org bacek at svn.parrot.org
Tue Sep 1 10:45:23 UTC 2009


Author: bacek
Date: Tue Sep  1 10:45:22 2009
New Revision: 40906
URL: https://trac.parrot.org/parrot/changeset/40906

Log:
Use Context Regs_* accessors

Modified:
   branches/context_pmc3/compilers/imcc/parser_util.c
   branches/context_pmc3/lib/Parrot/OpTrans/CGP.pm
   branches/context_pmc3/lib/Parrot/OpTrans/CSwitch.pm
   branches/context_pmc3/lib/Parrot/Ops2c/Utils.pm
   branches/context_pmc3/src/call/pcc.c
   branches/context_pmc3/src/ops/pic.ops

Modified: branches/context_pmc3/compilers/imcc/parser_util.c
==============================================================================
--- branches/context_pmc3/compilers/imcc/parser_util.c	Tue Sep  1 10:44:39 2009	(r40905)
+++ branches/context_pmc3/compilers/imcc/parser_util.c	Tue Sep  1 10:45:22 2009	(r40906)
@@ -869,10 +869,10 @@
      * Continuations (this happens when something is the target of a :outer)
      * trying to return values using them when invoked. (See TT#500 for the
      * report of the bug this fixes). */
-    opcode_t *save_results = CURRENT_CONTEXT_FIELD(interp, current_results);
-    CURRENT_CONTEXT_FIELD(interp, current_results) = NULL;
+    opcode_t *save_results = Parrot_pcc_get_results(interp, CURRENT_CONTEXT(interp));
+    Parrot_pcc_set_results(interp, CURRENT_CONTEXT(interp), NULL);
     sub = imcc_compile(interp, s, 0, &error_message);
-    CURRENT_CONTEXT_FIELD(interp, current_results) = save_results;
+    Parrot_pcc_set_results(interp, CURRENT_CONTEXT(interp), save_results);
 
     if (sub)
         return sub;

Modified: branches/context_pmc3/lib/Parrot/OpTrans/CGP.pm
==============================================================================
--- branches/context_pmc3/lib/Parrot/OpTrans/CGP.pm	Tue Sep  1 10:44:39 2009	(r40905)
+++ branches/context_pmc3/lib/Parrot/OpTrans/CGP.pm	Tue Sep  1 10:45:22 2009	(r40906)
@@ -91,7 +91,7 @@
         return "if ($addr == 0)
           return 0;
    Parrot_cx_handle_tasks(interp, interp->scheduler);
-   _reg_base = (char*)CURRENT_CONTEXT_FIELD(interp, bp.regs_i);
+   _reg_base = (char*)Parrot_pcc_get_regs_ni(interp, CURRENT_CONTEXT(interp))->regs_i;
    goto **(void **)(cur_opcode = opcode_to_prederef(interp, $addr))";
     }
 }

Modified: branches/context_pmc3/lib/Parrot/OpTrans/CSwitch.pm
==============================================================================
--- branches/context_pmc3/lib/Parrot/OpTrans/CSwitch.pm	Tue Sep  1 10:44:39 2009	(r40905)
+++ branches/context_pmc3/lib/Parrot/OpTrans/CSwitch.pm	Tue Sep  1 10:45:22 2009	(r40906)
@@ -154,7 +154,7 @@
 #endif
 
 SWITCH_RELOAD:
-    _reg_base = (char*)CURRENT_CONTEXT_FIELD(interp, bp.regs_i);
+    _reg_base = (char*)Parrot_pcc_get_regs_ni(interp, CURRENT_CONTEXT(interp))->regs_i;
     do {
 SWITCH_AGAIN:
     Parrot_cx_handle_tasks(interp, interp->scheduler);

Modified: branches/context_pmc3/lib/Parrot/Ops2c/Utils.pm
==============================================================================
--- branches/context_pmc3/lib/Parrot/Ops2c/Utils.pm	Tue Sep  1 10:44:39 2009	(r40905)
+++ branches/context_pmc3/lib/Parrot/Ops2c/Utils.pm	Tue Sep  1 10:45:22 2009	(r40906)
@@ -685,7 +685,7 @@
     __asm__ ("jmp *4(%ebp)");  /* jump to ret addr, used by JIT */
 # endif
 #endif
-    _reg_base = (char*)CURRENT_CONTEXT_FIELD(interp, bp.regs_i);
+    _reg_base = (char*)Parrot_pcc_get_regs_ni(interp, CURRENT_CONTEXT(interp))->regs_i;
     goto **(void **)cur_opcode;
 
 END_C

Modified: branches/context_pmc3/src/call/pcc.c
==============================================================================
--- branches/context_pmc3/src/call/pcc.c	Tue Sep  1 10:44:39 2009	(r40905)
+++ branches/context_pmc3/src/call/pcc.c	Tue Sep  1 10:45:22 2009	(r40906)
@@ -1198,15 +1198,18 @@
             Regs_ps bp_ps;
 
             /* clone sets key values according to refered register items */
-            bp    = CURRENT_CONTEXT_FIELD(interp, bp);
-            bp_ps = CURRENT_CONTEXT_FIELD(interp, bp_ps);
-            CURRENT_CONTEXT_FIELD(interp, bp)    = CONTEXT_FIELD(interp, st->src.ctx, bp);
-            CURRENT_CONTEXT_FIELD(interp, bp_ps) = CONTEXT_FIELD(interp, st->src.ctx, bp_ps);
+            bp    = *Parrot_pcc_get_regs_ni(interp, CURRENT_CONTEXT(interp));
+            bp_ps = *Parrot_pcc_get_regs_ps(interp, CURRENT_CONTEXT(interp));
+
+            Parrot_pcc_set_regs_ni(interp, CURRENT_CONTEXT(interp),
+                    Parrot_pcc_get_regs_ni(interp, st->src.ctx));
+            Parrot_pcc_set_regs_ps(interp, CURRENT_CONTEXT(interp),
+                    Parrot_pcc_get_regs_ps(interp, st->src.ctx));
 
             UVal_pmc(st->val) = VTABLE_clone(interp, key);
 
-            CURRENT_CONTEXT_FIELD(interp, bp)    = bp;
-            CURRENT_CONTEXT_FIELD(interp, bp_ps) = bp_ps;
+            Parrot_pcc_set_regs_ni(interp, CURRENT_CONTEXT(interp), &bp);
+            Parrot_pcc_set_regs_ps(interp, CURRENT_CONTEXT(interp), &bp_ps);
 
             return;
         }

Modified: branches/context_pmc3/src/ops/pic.ops
==============================================================================
--- branches/context_pmc3/src/ops/pic.ops	Tue Sep  1 10:44:39 2009	(r40905)
+++ branches/context_pmc3/src/ops/pic.ops	Tue Sep  1 10:45:22 2009	(r40906)
@@ -154,7 +154,7 @@
     if (lru->u.signature == sig) {
         if (sig) {
             n = ((arg_pass_f)lru->f.real_function)(interp, sig,
-                    (char*)CONTEXT_FIELD(interp, caller_ctx, bp.regs_i), src_pred,
+                    (char*)Parrot_pcc_get_regs_ni(interp, caller_ctx)->regs_i, src_pred,
                     _reg_base, (void**)cur_opcode);
         }
         else
@@ -212,7 +212,7 @@
         if (sig) {
             n = ((arg_pass_f)lru->f.real_function)(interp, mic->m.sig,
                     _reg_base, (void**)cur_opcode,
-                    (char*)CONTEXT_FIELD(interp, caller_ctx, bp.regs_i), dest_pred);
+                    (char*)Parrot_pcc_get_regs_ni(interp, caller_ctx)->regs_i, dest_pred);
         }
         else
             n = 2;


More information about the parrot-commits mailing list