root/arch/sh/lib64/strlen.S

/* [<][>][^][v][top][bottom][index][help] */
   1 /* SPDX-License-Identifier: GPL-2.0 */
   2 /*
   3  * Simplistic strlen() implementation for SHmedia.
   4  *
   5  * Copyright (C) 2003  Paul Mundt <lethal@linux-sh.org>
   6  */
   7 
   8         .section .text..SHmedia32,"ax"
   9         .globl  strlen
  10         .type   strlen,@function
  11 
  12         .balign 16
  13 strlen:
  14         ptabs   r18, tr4
  15 
  16         /*
  17          * Note: We could easily deal with the NULL case here with a simple
  18          * sanity check, though it seems that the behavior we want is to fault
  19          * in the event that r2 == NULL, so we don't bother.
  20          */
  21 /*      beqi    r2, 0, tr4 */   ! Sanity check
  22 
  23         movi    -1, r0
  24         pta/l   loop, tr0
  25 loop:
  26         ld.b    r2, 0, r1
  27         addi    r2, 1, r2
  28         addi    r0, 1, r0
  29         bnei/l  r1, 0, tr0
  30 
  31         or      r0, r63, r2
  32         blink   tr4, r63
  33 
  34         .size   strlen,.-strlen

/* [<][>][^][v][top][bottom][index][help] */