xref: /optee_os/ldelf/tlsdesc_rel_a64.S (revision 7bc927fa5192f4af4f59072f38822e0082e4bddb)
1*7bc927faSJerome Forissier/* SPDX-License-Identifier: BSD-2-Clause */
2*7bc927faSJerome Forissier/*
3*7bc927faSJerome Forissier * Copyright (c) 2020, Huawei Technologies Co. Ltd.
4*7bc927faSJerome Forissier */
5*7bc927faSJerome Forissier
6*7bc927faSJerome Forissier#include <asm.S>
7*7bc927faSJerome Forissier
8*7bc927faSJerome Forissier/*
9*7bc927faSJerome Forissier * long tlsdesc_resolve(struct tlsdesc *);
10*7bc927faSJerome Forissier *
11*7bc927faSJerome Forissier * Must preserve all registers except x0, x1 and the processor flags.
12*7bc927faSJerome Forissier * See https://www.fsfla.org/~lxoliva/writeups/TLS/RFC-TLSDESC-ARM.txt section
13*7bc927faSJerome Forissier * "Resolvers' Calling Convention". The document applies to 32-bit Arm but other
14*7bc927faSJerome Forissier * sources mention similar constraints for other architectures.
15*7bc927faSJerome Forissier */
16*7bc927faSJerome ForissierFUNC tlsdesc_resolve , :
17*7bc927faSJerome Forissier	ldr	x0, [x0, #8]
18*7bc927faSJerome Forissier	ret
19*7bc927faSJerome ForissierEND_FUNC tlsdesc_resolve
20*7bc927faSJerome Forissier
21