On Tue, Oct 29, 2002 at 02:40:14PM +0100, Leopold Toetsch wrote:

> >+        cur_var_ptr = (size_t)((ptrdiff_t)cur_var_ptr + 
> >PARROT_PTR_ALIGNMENT)
> 
> When PARROT_PTR_ALIGNMENT is not 1, that much pointers -1 are skipped 
> during stack scanning by incrementing cur_var_ptr by sizeof(size_t) * 
> PARROT_PTR_ALIGNMENT bytes.

ptrdiff_t is not a pointer type, so cur_var_ptr + PARROT_PTR_ALIGNMENT skips
exactly PARROT_PTR_ALIGNMENT bytes. You may not be matching ( )'s quite right.

> As a side note: applying your patch slows down e.g. life.pasm by ~2%.
> (I really don't see why).

Are you compiling with optimization enabled ? Is the difference consistent ?
If the answer to both questions is yes, it is probably a cache effect related
to the new variable on the function stack. I doubt the slowdown is universal.
I will try to check on SPARC sometime today.

-- 
Jason

Reply via email to