Mail Archives: djgpp/2000/01/20/17:14:58
Eli Zaretskii <eliz AT is DOT elta DOT co DOT il> writes:
> On Wed, 19 Jan 2000, Nigel Pattinson wrote:
>
> > /* Set up %esi, %edi to copy data to the PM stack. */
> > subl %ecx, %esp
> > movl %esp, %edi
> > movl ARG3, %esi
> >
> > /* Copy the data. */
> > cld
> > rep
> > movsw
> >
> > Since the size of the parameters (in ecx) is in 16-bit words, it looks
> > to me like the line
> >
> > subl %ecx, %esp
> >
> > only reserves half the required amount of stack space.
>
> But the copy of the data to the stack (see above) *also* uses words:
> it copies with "rep movsw". So it moves ECX words to the stack, and
> that's exactly the amount of storage reserved there by subl.
>
> So where exactly is the problem here?
Hmm... it is indeed copying %ecx words, but it's only reserving %ecx
*bytes*. So it looks like it really is wrong.
Easiest fix is just to subl twice.
--
Nate Eldredge
neldredge AT hmc DOT edu
- Raw text -