diff options
Diffstat (limited to 'libc/string/xtensa/strlen.S')
-rw-r--r-- | libc/string/xtensa/strlen.S | 56 |
1 files changed, 28 insertions, 28 deletions
diff --git a/libc/string/xtensa/strlen.S b/libc/string/xtensa/strlen.S index dd72c16fa..9ee4995f4 100644 --- a/libc/string/xtensa/strlen.S +++ b/libc/string/xtensa/strlen.S @@ -36,7 +36,7 @@ ENTRY (strlen) /* a2 = s */ - addi a3, a2, -4 // because we overincrement at the end + addi a3, a2, -4 /* because we overincrement at the end */ movi a4, MASK0 movi a5, MASK1 movi a6, MASK2 @@ -45,21 +45,21 @@ ENTRY (strlen) bbsi.l a2, 1, .L2mod4 j .Laligned -.L1mod2: // address is odd - l8ui a8, a3, 4 // get byte 0 - addi a3, a3, 1 // advance string pointer - beqz a8, .Lz3 // if byte 0 is zero - bbci.l a3, 1, .Laligned // if string pointer is now word-aligned +.L1mod2: /* address is odd */ + l8ui a8, a3, 4 /* get byte 0 */ + addi a3, a3, 1 /* advance string pointer */ + beqz a8, .Lz3 /* if byte 0 is zero */ + bbci.l a3, 1, .Laligned /* if string pointer is now word-aligned */ -.L2mod4: // address is 2 mod 4 - addi a3, a3, 2 // advance ptr for aligned access - l32i a8, a3, 0 // get word with first two bytes of string - bnone a8, a6, .Lz2 // if byte 2 (of word, not string) is zero - bany a8, a7, .Laligned // if byte 3 (of word, not string) is nonzero +.L2mod4: /* address is 2 mod 4 */ + addi a3, a3, 2 /* advance ptr for aligned access */ + l32i a8, a3, 0 /* get word with first two bytes of string */ + bnone a8, a6, .Lz2 /* if byte 2 (of word, not string) is zero */ + bany a8, a7, .Laligned /* if byte 3 (of word, not string) is nonzero */ /* Byte 3 is zero. */ - addi a3, a3, 3 // point to zero byte - sub a2, a3, a2 // subtract to get length + addi a3, a3, 3 /* point to zero byte */ + sub a2, a3, a2 /* subtract to get length */ retw @@ -69,36 +69,36 @@ ENTRY (strlen) /* (2 mod 4) alignment for loop instruction */ .Laligned: #if XCHAL_HAVE_LOOPS - _movi.n a8, 0 // set up for the maximum loop count - loop a8, .Lz3 // loop forever (almost anyway) + _movi.n a8, 0 /* set up for the maximum loop count */ + loop a8, .Lz3 /* loop forever (almost anyway) */ #endif -1: l32i a8, a3, 4 // get next word of string - addi a3, a3, 4 // advance string pointer - bnone a8, a4, .Lz0 // if byte 0 is zero - bnone a8, a5, .Lz1 // if byte 1 is zero - bnone a8, a6, .Lz2 // if byte 2 is zero +1: l32i a8, a3, 4 /* get next word of string */ + addi a3, a3, 4 /* advance string pointer */ + bnone a8, a4, .Lz0 /* if byte 0 is zero */ + bnone a8, a5, .Lz1 /* if byte 1 is zero */ + bnone a8, a6, .Lz2 /* if byte 2 is zero */ #if XCHAL_HAVE_LOOPS - bnone a8, a7, .Lz3 // if byte 3 is zero + bnone a8, a7, .Lz3 /* if byte 3 is zero */ #else - bany a8, a7, 1b // repeat if byte 3 is non-zero + bany a8, a7, 1b /* repeat if byte 3 is non-zero */ #endif .Lz3: /* Byte 3 is zero. */ - addi a3, a3, 3 // point to zero byte + addi a3, a3, 3 /* point to zero byte */ /* Fall through.... */ .Lz0: /* Byte 0 is zero. */ - sub a2, a3, a2 // subtract to get length + sub a2, a3, a2 /* subtract to get length */ retw .Lz1: /* Byte 1 is zero. */ - addi a3, a3, 1 // point to zero byte - sub a2, a3, a2 // subtract to get length + addi a3, a3, 1 /* point to zero byte */ + sub a2, a3, a2 /* subtract to get length */ retw .Lz2: /* Byte 2 is zero. */ - addi a3, a3, 2 // point to zero byte - sub a2, a3, a2 // subtract to get length + addi a3, a3, 2 /* point to zero byte */ + sub a2, a3, a2 /* subtract to get length */ retw libc_hidden_def (strlen) |