Correct counting of subsections.
authorUlrich Drepper <drepper@redhat.com>
Mon, 21 Jun 1999 13:00:14 +0000 (13:00 +0000)
committerUlrich Drepper <drepper@redhat.com>
Mon, 21 Jun 1999 13:00:14 +0000 (13:00 +0000)
sysdeps/alpha/atomicity.h

index 34a538f..6ed2ee6 100644 (file)
@@ -36,10 +36,10 @@ exchange_and_add (volatile uint32_t *mem, int val)
        "addl   %0,%4,%1\n\t"
        "stl_c  %1,%2\n\t"
        "beq    %1,2f\n"
-       ".subsection 2\n"
+       ".subsection 1\n"
        "2:\t"
        "br     1b\n"
-       ".subsection 1\n\t"
+       ".previous\n\t"
        "mb\n\t"
        "/* End exchange & add */"
        : "=&r"(result), "=&r"(tmp), "=m"(*mem)
@@ -61,10 +61,10 @@ atomic_add (volatile uint32_t *mem, int val)
        "addl   %0,%3,%0\n\t"
        "stl_c  %0,%1\n\t"
        "beq    %0,2f\n\t"
-       ".subsection 2\n"
+       ".subsection 1\n"
        "2:\t"
        "br     1b\n"
-       ".subsection 1\n\t"
+       ".previous\n\t"
        "mb\n\t"
        "/* End exchange & add */"
        : "=&r"(result), "=m"(*mem)
@@ -86,10 +86,10 @@ compare_and_swap (volatile long int *p, long int oldval, long int newval)
        "mov    %3,%0\n\t"
        "stq_c  %0,%1\n\t"
        "beq    %0,2f\n\t"
-       ".subsection 2\n"
+       ".subsection 1\n"
        "2:\t"
        "br     1b\n"
-       ".subsection 1\n\t"
+       ".previous\n\t"
        "3:\t"
        "mb\n\t"
        "/* End compare & swap */"