On Sat, Jul 15, 2017 at 04:16:47PM +0200, Jakob Eriksson wrote: > Oh, that was quite mundane - as most bugs are when found. :) > > Huge props to you for finding it so very fast.
Thanks to Jimmie. His program produced the effect relatively often, so I could trace it down. Before I never observed it. It only occurs if garbage collection happens just when 'adduAE_A' is running. > > 2460a2461 > > > push ZERO # <L III> Safe > > 2489,2490c2490,2491 > > < ld E (L I) # Get product > > < ld (L I) A # Save halved argument > > call adduAE_A # Add for rounding > > --- > > > ld (L III) A # Save halved argument > > > ld E (L I) # Get product, keep in safe > > call adduAE_A # Add for rounding > > > > Register E was not saved before the call to 'adduAE_A', because the stack > > entry (L I) was overwritten with register A. Now A is saved in a separate > > entry (L III). > > > > ♪♫ Alex > > > > -- > UNSUBSCRIBE: mailto:picolisp@software-lab.de?subject=Unsubscribe -- UNSUBSCRIBE: mailto:picolisp@software-lab.de?subject=Unsubscribe