root/arch/arm64/lib/memchr.S

/* [<][>][^][v][top][bottom][index][help] */
   1 /* SPDX-License-Identifier: GPL-2.0-only */
   2 /*
   3  * Based on arch/arm/lib/memchr.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 a character in an area of memory.
  14  *
  15  * Parameters:
  16  *      x0 - buf
  17  *      x1 - c
  18  *      x2 - n
  19  * Returns:
  20  *      x0 - address of first occurrence of 'c' or 0
  21  */
  22 WEAK(memchr)
  23         and     w1, w1, #0xff
  24 1:      subs    x2, x2, #1
  25         b.mi    2f
  26         ldrb    w3, [x0], #1
  27         cmp     w3, w1
  28         b.ne    1b
  29         sub     x0, x0, #1
  30         ret
  31 2:      mov     x0, #0
  32         ret
  33 ENDPIPROC(memchr)
  34 EXPORT_SYMBOL_NOKASAN(memchr)

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