On Sat, Aug 16, 2014 at 09:57:06PM +0200, Holger Hans Peter Freyther wrote:
Hi, > valgrind is giving me these with the plain JIT (without my patch > as far as I can see) > > > > ==13940== Invalid read of size 4 > ==13940== at 0x40CE5E6: sync_wait_process (interp.c:1697) > ==13940== by 0x884D7FF: ??? this is so odd. mst_Boolean emit_method_prolog (OOP methodOOP, gst_compiled_method method) ... /* Prepare new state */ jit_movi_i (JIT_R0, stack_depth); jit_movi_i (JIT_V2, header.numArgs); jit_prepare (2); jit_pusharg_p (JIT_V2); jit_pusharg_p (JIT_R0); jit_finish (PTR_ACTIVATE_NEW_CONTEXT); jit_retval (JIT_R0); jit_finish(PTR_ACTIVATE_NEW_CONTEXT) is generating the bad "call" to the middle of sync_wait_process. The runtime code has been initialized as far as I can see though. Is this more an issue of valgrind? if (!native_ip) { OOP activeProcessOOP = get_scheduled_process (); { gst_callin_process process = (gst_callin_process) OOP_TO_OBJ (activeProcessOOP); process->returnedValue = POP_OOP (); _gst_terminate_process (activeProcessOOP); } } It appears possible (or due the valgrind issue) that the currently active process is suspended when native_ip == 0 and that during the bootstrap no other process is runnable. Do you remember why we have not used processOOP at this point? holger _______________________________________________ help-smalltalk mailing list help-smalltalk@gnu.org https://lists.gnu.org/mailman/listinfo/help-smalltalk