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