Index: uspace/lib/c/arch/ia32/include/atomic.h
===================================================================
--- uspace/lib/c/arch/ia32/include/atomic.h	(revision c22531fc62cd27d622d0595337655d0ea0e4fbc1)
+++ uspace/lib/c/arch/ia32/include/atomic.h	(revision ec7f8b191f6709e9dbff29090376b4a072c8e1d0)
@@ -42,16 +42,30 @@
 static inline void atomic_inc(atomic_t *val)
 {
+#ifdef __PCC__
+	asm volatile (
+		"lock incl %0\n"
+		: "+m" (val->count)
+	);
+#else
 	asm volatile (
 		"lock incl %[count]\n"
 		: [count] "+m" (val->count)
 	);
+#endif
 }
 
 static inline void atomic_dec(atomic_t *val)
 {
+#ifdef __PCC__
+	asm volatile (
+		"lock decl %0\n"
+		: "+m" (val->count)
+	);
+#else
 	asm volatile (
 		"lock decl %[count]\n"
 		: [count] "+m" (val->count)
 	);
+#endif
 }
 
@@ -60,4 +74,11 @@
 	atomic_count_t r = 1;
 	
+#ifdef __PCC__
+	asm volatile (
+		"lock xaddl %1, %0\n"
+		: "+m" (val->count),
+		  "+r" (r)
+	);
+#else
 	asm volatile (
 		"lock xaddl %[r], %[count]\n"
@@ -65,4 +86,5 @@
 		  [r] "+r" (r)
 	);
+#endif
 	
 	return r;
@@ -73,4 +95,11 @@
 	atomic_count_t r = -1;
 	
+#ifdef __PCC__
+	asm volatile (
+		"lock xaddl %1, %0\n"
+		: "+m" (val->count),
+		  "+r" (r)
+	);
+#else
 	asm volatile (
 		"lock xaddl %[r], %[count]\n"
@@ -78,4 +107,5 @@
 		  [r] "+r" (r)
 	);
+#endif
 	
 	return r;
Index: uspace/lib/c/arch/ia32/include/types.h
===================================================================
--- uspace/lib/c/arch/ia32/include/types.h	(revision c22531fc62cd27d622d0595337655d0ea0e4fbc1)
+++ uspace/lib/c/arch/ia32/include/types.h	(revision ec7f8b191f6709e9dbff29090376b4a072c8e1d0)
@@ -51,5 +51,7 @@
 typedef uint32_t size_t;
 
+typedef int32_t intptr_t;
 typedef uint32_t uintptr_t;
+typedef int32_t intptr_t;
 typedef uint32_t atomic_count_t;
 typedef int32_t atomic_signed_t;
