On Thu, Dec 20, 2001 at 02:20:45PM +0000, Simon Cozens wrote:
> I'm sure this shouldn't be. Anyone got any clues?

Me! The following seems to be an off-by-one error:

diff -d -u -r1.1 jit.c
--- jit.c       20 Dec 2001 01:57:01 -0000      1.1
+++ jit.c       20 Dec 2001 14:24:32 -0000
@@ -70,7 +70,7 @@
         k += op_assembly[*pc].nargop;
         prev_address = op_address[k] = prev_address + op_assembly[*pc].size;
         size += op_assembly[*pc].size;
-        pc += op_assembly[*pc].nargop;
+        pc += op_assembly[*pc].nargop + 1;
     }
 
     bytecode_position = 0;
@@ -323,7 +323,7 @@
 
         /* */
         bytecode_position += op_assembly[*pc].nargop;
-        pc += op_assembly[*pc].nargop;
+        pc += op_assembly[*pc].nargop + 1;
     }
     return arena_start;
 }

However, this causes mops.pasm to take forever.

-- 
As in certain cults it is possible to kill a process if you know its true name.
                -- Ken Thompson and Dennis M. Ritchie

Reply via email to