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