remove unneeded nop the gcc-as add this self
[enigma2.git] / lib / base / object.h
index 38a6dd359693470b5d62c161fc1690f6a9430e13..68507a2b74f485986342366e3912052fbfb49c9f 100644 (file)
@@ -49,14 +49,14 @@ public:
                        { \
                                unsigned long temp; \
                                __asm__ __volatile__( \
-                               "               .set    mips3           \n" \
-                               "1:             ll              %0, %1          \n" \
-                               "               .set    mips0           \n" \
-                               "               addu    %0, 1           \n" \
-                               "               .set    mips3           \n" \
-                               "               sc              %0, %1          \n" \
-                               "               .set    mips0           \n" \
-                               "               beqz    %0, 1b          \n" \
+                               "               .set    mips3                                                                                   \n" \
+                               "1:             ll              %0, %1  # load counter                                                  \n" \
+                               "               .set    mips0                                                                                   \n" \
+                               "               addu    %0, 1   # increment                                                             \n" \
+                               "               .set    mips3                                                                                   \n" \
+                               "               sc              %0, %1  # try to store, checking for atomicity  \n" \
+                               "               .set    mips0                                                                                   \n" \
+                               "               beqz    %0, 1b  # if not atomic (0), try again                  \n" \
                                : "=&r" (temp), "=m" ((int)ref) \
                                : "m" ((int)ref) \
                                : "memory"); \
@@ -65,14 +65,14 @@ public:
                        { \
                                unsigned long temp; \
                                __asm__ __volatile__( \
-                               "               .set    mips3           \n" \
-                               "1:             ll              %0, %1          \n" \
-                               "               .set    mips0           \n" \
-                               "               subu    %0, 1           \n" \
-                               "               .set    mips3           \n" \
-                               "               sc              %0, %1          \n" \
-                               "               .set    mips0           \n" \
-                               "               beqz    %0, 1b          \n" \
+                               "               .set    mips3                           \n" \
+                               "1:             ll              %0, %1                          \n" \
+                               "               .set    mips0                           \n" \
+                               "               subu    %0, 1   # decrement     \n" \
+                               "               .set    mips3                           \n" \
+                               "               sc              %0, %1                          \n" \
+                               "               .set    mips0                           \n" \
+                               "               beqz    %0, 1b                          \n" \
                                : "=&r" (temp), "=m" ((int)ref) \
                                : "m" ((int)ref) \
                                : "memory"); \