/* Test case for http://bugs.kde.org/show_bug.cgi?id=157748 */

#include <stdio.h>

int arr[3];

int main ( void )
{
   /* eax points at arr[0] */
   __asm__ __volatile__(
      "movl %%esp,0(%%eax)\n\t"
      "pushfw\n\t"
      "movl %%esp,4(%%eax)\n\t"
      "popfw\n\t"
      "movl %%esp,8(%%eax)\n"
      : /*out*/ : /*in*/ "a"(&arr) : /*trash*/ "memory","cc"
   );

   printf("%x %x %x\n", arr[0]-arr[0], arr[0]-arr[1], arr[0]-arr[2]);
   return 0;
}