// SPDX-License-Identifier: GPL-2.0-or-later
/*
* Copyright (c) 2023 Huawei Device Co., Ltd.
*/
#include <linux/linkage.h>
#include <linux/init.h>
#include <asm/assembler.h>
.pushsection ".init.text", "ax"
SYM_CODE_START(init_constructors)
mov x21, x30
adrp x19, __ctors_end
adrp x20, __ctors_start
add x19, x19, #:lo12:__ctors_end
add x20, x20, #:lo12:__ctors_start
cmp x20, x19
b.cs 4f
3: ldr x8, [x20], #8
blr x8
cmp x20, x19
b.cc 3b
4: mov x30, x21
ret
SYM_CODE_END(init_constructors)