This is the mail archive of the libc-alpha@sources.redhat.com mailing list for the glibc project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

Re: i386 inline-asm string functions - some questions


On Thu, Dec 25, 2003 at 05:20:46AM +0500, Denis Zaitsev wrote:
> >From some moment in the past, the next input parameters are used here
> and there in sysdeps/i386/i486/bits/string.h:
> 
>         "m" ( *(struct { char __x[0xfffffff]; } *)__s)
> 
> When I was seeking for the reasons to do so, I've found some
> discussions about this in libc-alpha and gcc mailing lists.  As I
> understand from there, there are an options - to use the "m" arg(s)
> shown above or just to use "memory" in the list of a clobbered
> registers.  So, the question is: why the "m"-way had been choosen?

Someone wanted to describe that memory is read, but not written.
There's no real good way to do that.

You could use the "X" constraint, which is supposed to mean "anything"
and by implication "unused", but it's normally only with scratch
registers, not memories, and the address reloads don't get deleted.

You could file an enhancement pr against "X" if you want.



r~


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]