mirror of
git://git.yoctoproject.org/linux-yocto.git
synced 2025-08-21 16:31:14 +02:00

The .pushsection directive used to store the strings used with the .puts macro in the floating point helpers does not provide a section type but according to the gas documentation this should be mandatory and with the clang built in as it actually is. Provide one so that we can build these tests with LLVM=1. No functional change. Signed-off-by: Mark Brown <broonie@kernel.org> Reviewed-by: Nick Desaulniers <ndesaulniers@google.com> Link: https://lore.kernel.org/r/20230111-arm64-kselftest-clang-v1-1-89c69d377727@kernel.org Signed-off-by: Catalin Marinas <catalin.marinas@arm.com>
69 lines
1.2 KiB
C
69 lines
1.2 KiB
C
// SPDX-License-Identifier: GPL-2.0-only
|
|
// Copyright (C) 2015-2019 ARM Limited.
|
|
// Original author: Dave Martin <Dave.Martin@arm.com>
|
|
|
|
#ifndef ASSEMBLER_H
|
|
#define ASSEMBLER_H
|
|
|
|
.macro __for from:req, to:req
|
|
.if (\from) == (\to)
|
|
_for__body %\from
|
|
.else
|
|
__for \from, %(\from) + ((\to) - (\from)) / 2
|
|
__for %(\from) + ((\to) - (\from)) / 2 + 1, \to
|
|
.endif
|
|
.endm
|
|
|
|
.macro _for var:req, from:req, to:req, insn:vararg
|
|
.macro _for__body \var:req
|
|
.noaltmacro
|
|
\insn
|
|
.altmacro
|
|
.endm
|
|
|
|
.altmacro
|
|
__for \from, \to
|
|
.noaltmacro
|
|
|
|
.purgem _for__body
|
|
.endm
|
|
|
|
.macro function name
|
|
.macro endfunction
|
|
.type \name, @function
|
|
.purgem endfunction
|
|
.endm
|
|
\name:
|
|
.endm
|
|
|
|
.macro define_accessor name, num, insn
|
|
.macro \name\()_entry n
|
|
\insn \n, 1
|
|
ret
|
|
.endm
|
|
|
|
function \name
|
|
adr x2, .L__accessor_tbl\@
|
|
add x2, x2, x0, lsl #3
|
|
br x2
|
|
|
|
.L__accessor_tbl\@:
|
|
_for x, 0, (\num) - 1, \name\()_entry \x
|
|
endfunction
|
|
|
|
.purgem \name\()_entry
|
|
.endm
|
|
|
|
// Utility macro to print a literal string
|
|
// Clobbers x0-x4,x8
|
|
.macro puts string
|
|
.pushsection .rodata.str1.1, "aMS", @progbits, 1
|
|
.L__puts_literal\@: .string "\string"
|
|
.popsection
|
|
|
|
ldr x0, =.L__puts_literal\@
|
|
bl puts
|
|
.endm
|
|
|
|
#endif /* ! ASSEMBLER_H */
|