vserver 2.0 rc7
[linux-2.6.git] / arch / sparc64 / lib / bitops.S
index fd20171..886dcd2 100644 (file)
 test_and_set_bit:      /* %o0=nr, %o1=addr */
        BITOP_PRE_BARRIER
        srlx    %o0, 6, %g1
-       mov     1, %g5
+       mov     1, %o2
        sllx    %g1, 3, %g3
        and     %o0, 63, %g2
-       sllx    %g5, %g2, %g5
+       sllx    %o2, %g2, %o2
        add     %o1, %g3, %o1
 1:     ldx     [%o1], %g7
-       or      %g7, %g5, %g1
+       or      %g7, %o2, %g1
        casx    [%o1], %g7, %g1
        cmp     %g7, %g1
        bne,pn  %xcc, 1b
-        and    %g7, %g5, %g2
+        and    %g7, %o2, %g2
        BITOP_POST_BARRIER
        clr     %o0
        retl
@@ -48,17 +48,17 @@ test_and_set_bit:   /* %o0=nr, %o1=addr */
 test_and_clear_bit:    /* %o0=nr, %o1=addr */
        BITOP_PRE_BARRIER
        srlx    %o0, 6, %g1
-       mov     1, %g5
+       mov     1, %o2
        sllx    %g1, 3, %g3
        and     %o0, 63, %g2
-       sllx    %g5, %g2, %g5
+       sllx    %o2, %g2, %o2
        add     %o1, %g3, %o1
 1:     ldx     [%o1], %g7
-       andn    %g7, %g5, %g1
+       andn    %g7, %o2, %g1
        casx    [%o1], %g7, %g1
        cmp     %g7, %g1
        bne,pn  %xcc, 1b
-        and    %g7, %g5, %g2
+        and    %g7, %o2, %g2
        BITOP_POST_BARRIER
        clr     %o0
        retl
@@ -70,17 +70,17 @@ test_and_clear_bit: /* %o0=nr, %o1=addr */
 test_and_change_bit:   /* %o0=nr, %o1=addr */
        BITOP_PRE_BARRIER
        srlx    %o0, 6, %g1
-       mov     1, %g5
+       mov     1, %o2
        sllx    %g1, 3, %g3
        and     %o0, 63, %g2
-       sllx    %g5, %g2, %g5
+       sllx    %o2, %g2, %o2
        add     %o1, %g3, %o1
 1:     ldx     [%o1], %g7
-       xor     %g7, %g5, %g1
+       xor     %g7, %o2, %g1
        casx    [%o1], %g7, %g1
        cmp     %g7, %g1
        bne,pn  %xcc, 1b
-        and    %g7, %g5, %g2
+        and    %g7, %o2, %g2
        BITOP_POST_BARRIER
        clr     %o0
        retl
@@ -91,13 +91,13 @@ test_and_change_bit:        /* %o0=nr, %o1=addr */
        .type   set_bit,#function
 set_bit:               /* %o0=nr, %o1=addr */
        srlx    %o0, 6, %g1
-       mov     1, %g5
+       mov     1, %o2
        sllx    %g1, 3, %g3
        and     %o0, 63, %g2
-       sllx    %g5, %g2, %g5
+       sllx    %o2, %g2, %o2
        add     %o1, %g3, %o1
 1:     ldx     [%o1], %g7
-       or      %g7, %g5, %g1
+       or      %g7, %o2, %g1
        casx    [%o1], %g7, %g1
        cmp     %g7, %g1
        bne,pn  %xcc, 1b
@@ -110,13 +110,13 @@ set_bit:          /* %o0=nr, %o1=addr */
        .type   clear_bit,#function
 clear_bit:             /* %o0=nr, %o1=addr */
        srlx    %o0, 6, %g1
-       mov     1, %g5
+       mov     1, %o2
        sllx    %g1, 3, %g3
        and     %o0, 63, %g2
-       sllx    %g5, %g2, %g5
+       sllx    %o2, %g2, %o2
        add     %o1, %g3, %o1
 1:     ldx     [%o1], %g7
-       andn    %g7, %g5, %g1
+       andn    %g7, %o2, %g1
        casx    [%o1], %g7, %g1
        cmp     %g7, %g1
        bne,pn  %xcc, 1b
@@ -129,13 +129,13 @@ clear_bit:                /* %o0=nr, %o1=addr */
        .type   change_bit,#function
 change_bit:            /* %o0=nr, %o1=addr */
        srlx    %o0, 6, %g1
-       mov     1, %g5
+       mov     1, %o2
        sllx    %g1, 3, %g3
        and     %o0, 63, %g2
-       sllx    %g5, %g2, %g5
+       sllx    %o2, %g2, %o2
        add     %o1, %g3, %o1
 1:     ldx     [%o1], %g7
-       xor     %g7, %g5, %g1
+       xor     %g7, %o2, %g1
        casx    [%o1], %g7, %g1
        cmp     %g7, %g1
        bne,pn  %xcc, 1b