http://gcc.gnu.org/bugzilla/show_bug.cgi?id=44970

--- Comment #99 from dave at hiauly1 dot hia.nrc.ca 2010-11-14 23:12:25 UTC ---
On Sun, 14 Nov 2010, bonzini at gnu dot org wrote:

> Minimized testcase:
> 
> int f (unsigned long arg, int *cr)
> {
>   int *p = (int *) arg;
>   int x = *cr;
>   long pu_err = 0;
>   if (x)
>     asm volatile ("stw %2,0(%1)": "=r" (pu_err): "r" (p), "r" (x));
> 
>   asm volatile ("stw %2,0(%%sr3,%1)": "=r" (pu_err): "r" (p), "r" (x));
>   return pu_err;
> }
> 
> Fails at -O2.

Cool!  The reduced code no longer makes any sense but it should compile.
I'm sure this was a fair bit of work.

Dave

Reply via email to