------- Comment #2 from hjl dot tools at gmail dot com  2009-01-23 04:34 -------
How about this one:

---
extern void abort (void);

void
foo (int x)
{
  if (x != 8)
    abort ();
}

void
bar (int g)
{
    register int x __asm__("ecx");
    register int y __asm__("eax");
    x = 5;
    foo (1 << g);
    asm ("mov %1, %0": "=r" (y): "r" (x));
    if (x != 5)
      abort ();
    if (y != 5)
      abort ();
}

int
main ()
{
  bar (3);
  return 0;
}
---


-- 

hjl dot tools at gmail dot com changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
            Summary|CX isn't preserved with     |CX isn't preserved with
                   |shift                       |shift


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

Reply via email to