root/arch/arm64/lib/strchr.S

/* [<][>][^][v][top][bottom][index][help] */
   1 /* SPDX-License-Identifier: GPL-2.0-only */
   2 /*
   3  * Based on arch/arm/lib/strchr.S
   4  *
   5  * Copyright (C) 1995-2000 Russell King
   6  * Copyright (C) 2013 ARM Ltd.
   7  */
   8 
   9 #include <linux/linkage.h>
  10 #include <asm/assembler.h>
  11 
  12 /*
  13  * Find the first occurrence of a character in a string.
  14  *
  15  * Parameters:
  16  *      x0 - str
  17  *      x1 - c
  18  * Returns:
  19  *      x0 - address of first occurrence of 'c' or 0
  20  */
  21 WEAK(strchr)
  22         and     w1, w1, #0xff
  23 1:      ldrb    w2, [x0], #1
  24         cmp     w2, w1
  25         ccmp    w2, wzr, #4, ne
  26         b.ne    1b
  27         sub     x0, x0, #1
  28         cmp     w2, w1
  29         csel    x0, x0, xzr, eq
  30         ret
  31 ENDPROC(strchr)
  32 EXPORT_SYMBOL_NOKASAN(strchr)

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