root/arch/arm64/lib/strrchr.S

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

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