<?xml version="1.0" encoding="UTF-8"?>
<commit>
  <added type="array"/>
  <modified type="array">
    <modified>
      <diff>@@ -24,57 +24,7 @@
 
 #ifdef __i386__
 
-#ifdef __GNUC__
-
-__ASM_GLOBAL_FUNC(interlocked_cmpxchg,
-                  &quot;movl 12(%esp),%eax\n\t&quot;
-                  &quot;movl 8(%esp),%ecx\n\t&quot;
-                  &quot;movl 4(%esp),%edx\n\t&quot;
-                  &quot;lock; cmpxchgl %ecx,(%edx)\n\t&quot;
-                  &quot;ret&quot;)
-__ASM_GLOBAL_FUNC(interlocked_cmpxchg_ptr,
-                  &quot;movl 12(%esp),%eax\n\t&quot;
-                  &quot;movl 8(%esp),%ecx\n\t&quot;
-                  &quot;movl 4(%esp),%edx\n\t&quot;
-                  &quot;lock; cmpxchgl %ecx,(%edx)\n\t&quot;
-                  &quot;ret&quot;)
- __ASM_GLOBAL_FUNC(interlocked_cmpxchg64,
-                   &quot;push %ebx\n\t&quot;
-                   __ASM_CFI(&quot;.cfi_adjust_cfa_offset 4\n\t&quot;)
-                   __ASM_CFI(&quot;.cfi_rel_offset %ebx,0\n\t&quot;)
-                   &quot;push %esi\n\t&quot;
-                   __ASM_CFI(&quot;.cfi_adjust_cfa_offset 4\n\t&quot;)
-                   __ASM_CFI(&quot;.cfi_rel_offset %esi,0\n\t&quot;)
-                   &quot;movl 12(%esp),%esi\n\t&quot;
-                   &quot;movl 16(%esp),%ebx\n\t&quot;
-                   &quot;movl 20(%esp),%ecx\n\t&quot;
-                   &quot;movl 24(%esp),%eax\n\t&quot;
-                   &quot;movl 28(%esp),%edx\n\t&quot;
-                   &quot;lock; cmpxchg8b (%esi)\n\t&quot;
-                   &quot;pop %esi\n\t&quot;
-                   __ASM_CFI(&quot;.cfi_same_value %esi\n\t&quot;)
-                   __ASM_CFI(&quot;.cfi_adjust_cfa_offset -4\n\t&quot;)
-                   &quot;pop %ebx\n\t&quot;
-                   __ASM_CFI(&quot;.cfi_same_value %ebx\n\t&quot;)
-                   __ASM_CFI(&quot;.cfi_adjust_cfa_offset -4\n\t&quot;)
-                   &quot;ret&quot;)
-__ASM_GLOBAL_FUNC(interlocked_xchg,
-                  &quot;movl 8(%esp),%eax\n\t&quot;
-                  &quot;movl 4(%esp),%edx\n\t&quot;
-                  &quot;lock; xchgl %eax,(%edx)\n\t&quot;
-                  &quot;ret&quot;)
-__ASM_GLOBAL_FUNC(interlocked_xchg_ptr,
-                  &quot;movl 8(%esp),%eax\n\t&quot;
-                  &quot;movl 4(%esp),%edx\n\t&quot;
-                  &quot;lock; xchgl %eax,(%edx)\n\t&quot;
-                  &quot;ret&quot;)
-__ASM_GLOBAL_FUNC(interlocked_xchg_add,
-                  &quot;movl 8(%esp),%eax\n\t&quot;
-                  &quot;movl 4(%esp),%edx\n\t&quot;
-                  &quot;lock; xaddl %eax,(%edx)\n\t&quot;
-                  &quot;ret&quot;)
-
-#elif defined(_MSC_VER)
+#if defined(_MSC_VER)
 
 __declspec(naked) int interlocked_cmpxchg( int *dest, int xchg, int compare )
 {
@@ -134,7 +84,56 @@ __declspec(naked) int interlocked_xchg_add( int *dest, int incr )
 }
 
 #else
-# error You must implement the interlocked* functions for your compiler
+/* use gcc compatible asm code as default for __i386__ */
+
+__ASM_GLOBAL_FUNC(interlocked_cmpxchg,
+                  &quot;movl 12(%esp),%eax\n\t&quot;
+                  &quot;movl 8(%esp),%ecx\n\t&quot;
+                  &quot;movl 4(%esp),%edx\n\t&quot;
+                  &quot;lock; cmpxchgl %ecx,(%edx)\n\t&quot;
+                  &quot;ret&quot;)
+__ASM_GLOBAL_FUNC(interlocked_cmpxchg_ptr,
+                  &quot;movl 12(%esp),%eax\n\t&quot;
+                  &quot;movl 8(%esp),%ecx\n\t&quot;
+                  &quot;movl 4(%esp),%edx\n\t&quot;
+                  &quot;lock; cmpxchgl %ecx,(%edx)\n\t&quot;
+                  &quot;ret&quot;)
+ __ASM_GLOBAL_FUNC(interlocked_cmpxchg64,
+                   &quot;push %ebx\n\t&quot;
+                   __ASM_CFI(&quot;.cfi_adjust_cfa_offset 4\n\t&quot;)
+                   __ASM_CFI(&quot;.cfi_rel_offset %ebx,0\n\t&quot;)
+                   &quot;push %esi\n\t&quot;
+                   __ASM_CFI(&quot;.cfi_adjust_cfa_offset 4\n\t&quot;)
+                   __ASM_CFI(&quot;.cfi_rel_offset %esi,0\n\t&quot;)
+                   &quot;movl 12(%esp),%esi\n\t&quot;
+                   &quot;movl 16(%esp),%ebx\n\t&quot;
+                   &quot;movl 20(%esp),%ecx\n\t&quot;
+                   &quot;movl 24(%esp),%eax\n\t&quot;
+                   &quot;movl 28(%esp),%edx\n\t&quot;
+                   &quot;lock; cmpxchg8b (%esi)\n\t&quot;
+                   &quot;pop %esi\n\t&quot;
+                   __ASM_CFI(&quot;.cfi_same_value %esi\n\t&quot;)
+                   __ASM_CFI(&quot;.cfi_adjust_cfa_offset -4\n\t&quot;)
+                   &quot;pop %ebx\n\t&quot;
+                   __ASM_CFI(&quot;.cfi_same_value %ebx\n\t&quot;)
+                   __ASM_CFI(&quot;.cfi_adjust_cfa_offset -4\n\t&quot;)
+                   &quot;ret&quot;)
+__ASM_GLOBAL_FUNC(interlocked_xchg,
+                  &quot;movl 8(%esp),%eax\n\t&quot;
+                  &quot;movl 4(%esp),%edx\n\t&quot;
+                  &quot;lock; xchgl %eax,(%edx)\n\t&quot;
+                  &quot;ret&quot;)
+__ASM_GLOBAL_FUNC(interlocked_xchg_ptr,
+                  &quot;movl 8(%esp),%eax\n\t&quot;
+                  &quot;movl 4(%esp),%edx\n\t&quot;
+                  &quot;lock; xchgl %eax,(%edx)\n\t&quot;
+                  &quot;ret&quot;)
+__ASM_GLOBAL_FUNC(interlocked_xchg_add,
+                  &quot;movl 8(%esp),%eax\n\t&quot;
+                  &quot;movl 4(%esp),%edx\n\t&quot;
+                  &quot;lock; xaddl %eax,(%edx)\n\t&quot;
+                  &quot;ret&quot;)
+
 #endif
 
 #elif defined(__x86_64__)</diff>
      <filename>libs/port/interlocked.c</filename>
    </modified>
  </modified>
  <removed type="array"/>
  <parents type="array">
    <parent>
      <id>1227722b2521a311e5c14e4196a4fe922b542402</id>
    </parent>
  </parents>
  <author>
    <name>Detlef Riekenberg</name>
    <email>wine.dev@web.de</email>
  </author>
  <url>http://github.com/github/wine/commit/c8d860b31e09dcebf7e960a4c6a7f2e6c8830ecc</url>
  <id>c8d860b31e09dcebf7e960a4c6a7f2e6c8830ecc</id>
  <committed-date>2009-09-15T14:41:24-07:00</committed-date>
  <authored-date>2009-09-12T09:17:56-07:00</authored-date>
  <message>libs/port: use gcc compatible asm code as default for __i386__ (for PCC).</message>
  <tree>4996c53cc4f9768968061bda2281b2d43f4b1e94</tree>
  <committer>
    <name>Alexandre Julliard</name>
    <email>julliard@winehq.org</email>
  </committer>
</commit>
