optimize dispatch a little more
[IRC.git] / Robust / src / Runtime / mlp_lock.h
index c5f6ac0b297c67a8fe759009b33fd192d5c4fe1a..d462534bf934c7c6ada01d29c03cfcb2bd20c1cf 100644 (file)
@@ -43,6 +43,13 @@ static inline int atomic_sub_and_test(int i, volatile int *v) {
   return c;
 }
 
+
+static inline void atomic_add(int i, volatile int *v) {
+  __asm__ __volatile__ (LOCK_PREFIX "addl %1,%0"
+                        : "+m" (*v)
+                        : "ir" (i));
+}
+
 static inline int LOCKXCHG32(volatile int* ptr, int val){
   int retval;
   //note: xchgl always implies lock