Squashed backup commit (no shallow-clone history issues) of xiaomi-mt6833-dev/kernel_xiaomi_mt6833 (lineage-23.2 branch, upstream commit 9eece662e) plus all fixes applied to get everpal_defconfig building clean against a modern (GCC 15.2.0) toolchain -- see the previous commit message on the lineage-23.2 branch (also in this repo history is not available here since this is a squashed snapshot; full incremental history lives in the local DL380 checkout and the upstream GitHub remote). Upstream: https://github.com/xiaomi-mt6833-dev/kernel_xiaomi_mt6833 (lineage-23.2)
35 lines
671 B
ArmAsm
35 lines
671 B
ArmAsm
/* SPDX-License-Identifier: GPL-2.0 */
|
|
/*
|
|
* Simplistic strlen() implementation for SHmedia.
|
|
*
|
|
* Copyright (C) 2003 Paul Mundt <lethal@linux-sh.org>
|
|
*/
|
|
|
|
.section .text..SHmedia32,"ax"
|
|
.globl strlen
|
|
.type strlen,@function
|
|
|
|
.balign 16
|
|
strlen:
|
|
ptabs r18, tr4
|
|
|
|
/*
|
|
* Note: We could easily deal with the NULL case here with a simple
|
|
* sanity check, though it seems that the behavior we want is to fault
|
|
* in the event that r2 == NULL, so we don't bother.
|
|
*/
|
|
/* beqi r2, 0, tr4 */ ! Sanity check
|
|
|
|
movi -1, r0
|
|
pta/l loop, tr0
|
|
loop:
|
|
ld.b r2, 0, r1
|
|
addi r2, 1, r2
|
|
addi r0, 1, r0
|
|
bnei/l r1, 0, tr0
|
|
|
|
or r0, r63, r2
|
|
blink tr4, r63
|
|
|
|
.size strlen,.-strlen
|