[Bug c/39403] Excessive optimization issue
Andrew Thomas Pinski
pinskia@gmail.com
Mon Mar 9 15:57:00 GMT 2009
Sent from my iPhone
On Mar 9, 2009, at 8:36 AM, "rguenth at gcc dot gnu dot org" <gcc-bugzilla@gcc.gnu.org
> wrote:
>
>
> ------- Comment #1 from rguenth at gcc dot gnu dot org 2009-03-09
> 15:36 -------
> You need to specify that the registers are clobbered by the asm.
> The only
> way to do that is to use output constraints ("+D", "+c", etc.) on
> proper
> temporaries.
>
> int lent = len;
> char *dstt = dst;
> char *srct = src;
> __asm__ __volatile__(
> "cld\n\t"
> "rep movsb"
> : "+c" (lent), "+D"(dstt), "+S"(src)
> );
> Otherwise GCC thinks the registers still hold the original value.
Oh and mark this inline-ask as clobbering memory.
>
>
>
> --
>
> rguenth at gcc dot gnu dot org changed:
>
> What |Removed |Added
> ---
> ---
> ----------------------------------------------------------------------
> Status|UNCONFIRMED |RESOLVED
> Resolution| |INVALID
>
>
> http://gcc.gnu.org/bugzilla/show_bug.cgi?id=39403
>
More information about the Gcc-bugs
mailing list