On Thursday 20 March 2008 04:35:11 James Keenan via RT wrote:

> On Wed Mar 19 22:20:59 2008, [EMAIL PROTECTED] wrote:

> > Actually, it's a lack of changes made to that file.  Does this patch fix
> > things for you?

> Unfortunately, no.  'make' failed at almost exactly the same point.  See
> attached diff of my build logs.

How about this patch instead?  You'll have to revert the old one.

(If this doesn't work, can you show me the lines with errors on them?)

-- c

=== src/jit/ppc/core.jit
==================================================================
--- src/jit/ppc/core.jit	(revision 26509)
+++ src/jit/ppc/core.jit	(local)
@@ -1258,31 +1258,29 @@
 }
 
 Parrot_pic_callr___pc {
-    int offset, here, op_i;
-    PackFile_Constant ** constants;
-    PMC *sig_params, *sig_result;
-    opcode_t *params;
-    int skip;
+    PackFile_Constant **constants  = CONTEXT(interp)->constants;
+    PMC               **sig_result = constants[CUR_OPCODE[1]]->u.key;
+    opcode_t           *params     = jit_info->optimizer->sections->begin;
+    PMC                *sig_params = constants[params[1]]->u.key;
+    int                 op_i       = SIG_ELEMS(sig_params) + 2;
+    int                 offset     = jit_info->arena.op_map[op_i].offset;
+    int                 here       = NATIVECODE - jit_info->arena.start;
+    int                 skip;
 
-    constants = CONTEXT(interp->ctx)->constants;
-    params = jit_info->optimizer->sections->begin;
-    sig_params = constants[params[1]]->u.key;
-    op_i = 2 + SIG_ELEMS(sig_params);
-
-    offset = jit_info->arena.op_map[op_i].offset;
     /* TODO preserve necessary regs */
     assert(*CUR_OPCODE == PARROT_OP_get_results_pc);
-    constants = CONTEXT(interp->ctx)->constants;
-    sig_result = constants[CUR_OPCODE[1]]->u.key;
+
     if (!SIG_ELEMS(sig_result))
-    skip = -1;
+        skip = -1;
+    /* skip result - save rest */
     else
-    skip = MAP(2);      /* skip result - save rest */
+        skip = MAP(2);
 
-    here = NATIVECODE - jit_info->arena.start;
     offset -= here;
-    _emit_bx(NATIVECODE, 1, offset); /* bl */
 
+    /* bl */
+    _emit_bx(NATIVECODE, 1, offset);
+
     jit_restore_regs_call(jit_info, interp, skip);
 }
 
@@ -1302,13 +1300,12 @@
         offsetof(parrot_context_t, current_results), ISR2);
     }
     else {
-    PackFile_Constant ** constants;
-    PMC *sig_result;
+    PackFile_Constant **constants  = CONTEXT(interp)->constants;
+    PMC                *sig_result = constants[CUR_OPCODE[1]]->u.key;
 
-    constants = CONTEXT(interp->ctx)->constants;
-    sig_result = constants[CUR_OPCODE[1]]->u.key;
     if (!SIG_ELEMS(sig_result))
         return;
+
     /* result is r3 TODO Nums */
     jit_emit_mov_rr(NATIVECODE, MAP(2), r3);
     }

Reply via email to