Stack Frame Calc Problem in head_4xx.S

Erik Christiansen erik at dd.nec.com.au
Mon May 5 11:41:41 EST 2003


On Sat, May 03, 2003 at 05:20:51PM -0400, Jerry Walden wrote:
>
> After line 15 executes r1 = 0xc00f4ff0
> which seems fine so far (according to the map file it is pointing to the
> proper location)
>
> After line 16 executes r1=0xc00f6ff0
> which is still within the bounds of init_task_union
>
> After line 17 execute r1 = 0xc00f6fe0 which seems like a problem to me,

   The code seems to be doing exactly what you ask it to.

   stwu updates r1 by the offset, after completing the store. (That's
   what the "u" is for.)

   Given:

> STACK_FRAME_OVERHEAD = 16

   How can you expect any other result?:

> 17	stwu	r0,-STACK_FRAME_OVERHEAD(r1)

   If this is as intended, then your problem lies earlier, it appears.
   (But it sounds a little like you're unaware that you're modifying the
   stack pointer, not just indexing from it.)

Regards,
Erik

--
 _,-_|\    Erik Christiansen
/      \   Registered (Debian) Linux User #216862
\_,-.__/
      v

** Sent via the linuxppc-embedded mail list. See http://lists.linuxppc.org/





More information about the Linuxppc-embedded mailing list