]> git.neil.brown.name Git - history.git/commitdiff
[PATCH] more typos in __stxncpy
authorIvan Kokshaysky <ink@jurassic.park.msu.ru>
Sat, 7 Dec 2002 05:59:16 +0000 (21:59 -0800)
committerRichard Henderson <rth@dorothy.sfbay.redhat.com>
Sat, 7 Dec 2002 05:59:16 +0000 (21:59 -0800)
[posted on axp-list yesterday; I already have some success reports]

- ev6: missing local label which causes oopses in several places.
  BTW, I was quite surprised that `as' allows such things
  (I guess it shouldn't):

br 1f
...
  $foo:
...
  1:

- ev5: t12 instead of t10 - corruption in ISO readdir, probably other
  nastiness.

Also, minor cleanups:
- move the label in $unaligned, this should save a cycle or two;
- replace redundant `mskqh' with a nop (it doesn't save any cycles though);
- fix comment: t12 _is_ touched.

Applies to both 2.4 and 2.5.

Ivan.

arch/alpha/lib/ev6-stxncpy.S
arch/alpha/lib/stxncpy.S

index 2116a5dd42f9c5dc9cae67ed2d1cc001a504eed3..1b533a3f8a46afb838f489847ec006c7abad98ac 100644 (file)
@@ -25,7 +25,7 @@
  *     a0  = unaligned address of the last *word* written
  *     a2  = the number of full words left in COUNT
  *
- * Furthermore, v0, a3-a5, t11, t12, and $at are untouched.
+ * Furthermore, v0, a3-a5, t11, and $at are untouched.
  *
  * Much of the information about 21264 scheduling/coding comes from:
  *     Compiler Writer's Guide for the Alpha 21264
@@ -324,7 +324,7 @@ $u_eoc:
        extqh   t2, a1, t0      # U : extract low bits for last word (stall)
        or      t1, t0, t1      # E : (stall)
 
-       cmpbge  zero, t1, t8    # E :
+1:     cmpbge  zero, t1, t8    # E :
        mov     t1, t0          # E :
 
 $u_eocfin:                     # end-of-count, final word
@@ -350,17 +350,17 @@ $unaligned:
        mskql   t6, a0, t6      # U :
        nop
        nop
-1:     subq    a1, t4, a1      # E : sub dest misalignment from src addr
+       subq    a1, t4, a1      # E : sub dest misalignment from src addr
 
        /* If source misalignment is larger than dest misalignment, we need
           extra startup checks to avoid SEGV.  */
 
-       cmplt   t4, t5, t12     # E :
+1:     cmplt   t4, t5, t12     # E :
        extql   t1, a1, t1      # U : shift src into place
        lda     t2, -1          # E : for creating masks later
        beq     t12, $u_head    # U : (stall)
 
-       mskqh   t2, t5, t2      # U : begin src byte validity mask
+       nop
        cmpbge  zero, t1, t8    # E : is there a zero?
        extql   t2, a1, t2      # U :
        or      t8, t10, t5     # E : test for end-of-count too
index f6fcef4c42a54d1e71afae43ac46efdab7d5d720..9c44b9d7260e7862398b81adb57e3117fe573b72 100644 (file)
@@ -25,7 +25,7 @@
  *     a0  = unaligned address of the last *word* written
  *     a2  = the number of full words left in COUNT
  *
- * Furthermore, v0, a3-a5, t11, t12, and $at are untouched.
+ * Furthermore, v0, a3-a5, t11, and $at are untouched.
  */
 
 #include <asm/regdef.h>
@@ -269,7 +269,7 @@ $u_final:
           t1 == the shifted high-order bits from the previous source word  */
 $u_eoc:
        and     a1, 7, t6       # e1    :
-       sll     t12, t6, t6     # e0    :
+       sll     t10, t6, t6     # e0    :
        and     t6, 0xff, t6    # e0    :
        bne     t6, 1f          # .. e1 :
 
@@ -303,18 +303,17 @@ $unaligned:
        ldq_u   t0, 0(a0)       # e0    :
        lda     t6, -1          # .. e1 :
        mskql   t6, a0, t6      # e0    :
-1:
        subq    a1, t4, a1      # .. e1 : sub dest misalignment from src addr
 
        /* If source misalignment is larger than dest misalignment, we need
           extra startup checks to avoid SEGV.  */
 
-       cmplt   t4, t5, t12     # e1    :
+1:     cmplt   t4, t5, t12     # e1    :
        extql   t1, a1, t1      # .. e0 : shift src into place
        lda     t2, -1          # e0    : for creating masks later
-       beq     t12, $u_head    # e1    :
+       beq     t12, $u_head    # .. e1 :
 
-       mskqh   t2, t5, t2      # e0    : begin src byte validity mask
+       nop                     # e0    :
        cmpbge  zero, t1, t8    # .. e1 : is there a zero?
        extql   t2, a1, t2      # e0    :
        or      t8, t10, t5     # .. e1 : test for end-of-count too