------- Comment #2 from rguenth at gcc dot gnu dot org  2009-07-18 09:15 -------
  asm("movw %4, %%fs\n"
      "movl %%esp, %0\n"
      "pushw %%fs\n"
      "movl %%esp, %1\n"
      "popw %%fs\n"
      "movl %%esp, %2\n"
      "movw %%fs, %3\n"
      : "=m" (sp1), "=m" (sp2), "=m" (sp3), "=m" (fs2)
      : "m" (fs1)
      : "ax"
      );

As you access sp2 in memory after modifying the stack pointer you get
a wrong stack slot location because sp2 lives at 12(%esp) from the
compilers view.

Either don't mess with the stack or use register input/output constraints.


-- 

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=40795

Reply via email to