This is the mail archive of the
mailing list for the glibc project.
Re: Misaligned stack on 32-bit s390?
- From: Richard Henderson <rth at twiddle dot net>
- To: Carlos O'Donell <carlos at redhat dot com>, Andreas Krebbel <krebbel at linux dot vnet dot ibm dot com>, Siddhesh Poyarekar <siddhesh at redhat dot com>, GNU C Library <libc-alpha at sourceware dot org>
- Date: Tue, 11 Nov 2014 11:19:53 +0100
- Subject: Re: Misaligned stack on 32-bit s390?
- Authentication-results: sourceware.org; auth=none
- References: <54619F3E dot 8080306 at redhat dot com> <5461D6CA dot 9030902 at twiddle dot net> <5461DBC4 dot 9090508 at redhat dot com>
On 11/11/2014 10:49 AM, Carlos O'Donell wrote:
> For argv only. What instruction is the block copy? Are you
> talking about lm/stm?
I was thinking of EX combined with MVC.
But of course you're right about envp and argp, where you'd
have to count the number of entries before forming the count.
> + # Now we have to zero out the envp entries after NULL to allow\n\
> + # start.S to properly find auxv by skipping zeroes.\n\
> + # zero out loop:\n\
> + lhi %r7,0\n\
> +.L3: st %r7,0(%r6) # Store zero.\n\
> + ahi %r6,4 # Advance dest pointer.\n\
> + ahi %r1,-1 # Subtract one from the word count.\n\
> + ltr %r1,%r1\n\
> + jne .L3 # Keep copying if the word count is non-zero.\n\
In the alpha port, I just copy auxv down as well.