mirror of
https://github.com/ARM-software/arm-trusted-firmware.git
synced 2025-04-18 18:44:22 +00:00
perf(cpus): inline the init_cpu_data_ptr function
Similar to the reset function inline, inline this too to not do a costly branch with no extra cost. Change-Id: I54cc399e570e9d0f373ae13c7224d32dbdfae1e5 Signed-off-by: Boyan Karatotev <boyan.karatotev@arm.com>
This commit is contained in:
parent
0d020822ae
commit
b07c317f67
3 changed files with 5 additions and 24 deletions
|
@ -49,7 +49,9 @@
|
||||||
* due to a NULL TPIDR_EL3.
|
* due to a NULL TPIDR_EL3.
|
||||||
* ---------------------------------------------------------------------
|
* ---------------------------------------------------------------------
|
||||||
*/
|
*/
|
||||||
bl init_cpu_data_ptr
|
bl plat_my_core_pos
|
||||||
|
bl _cpu_data_by_index
|
||||||
|
msr tpidr_el3, x0
|
||||||
#endif /* IMAGE_BL31 */
|
#endif /* IMAGE_BL31 */
|
||||||
|
|
||||||
/* ---------------------------------------------------------------------
|
/* ---------------------------------------------------------------------
|
||||||
|
|
|
@ -1,5 +1,5 @@
|
||||||
/*
|
/*
|
||||||
* Copyright (c) 2014-2024, Arm Limited and Contributors. All rights reserved.
|
* Copyright (c) 2014-2025, Arm Limited and Contributors. All rights reserved.
|
||||||
*
|
*
|
||||||
* SPDX-License-Identifier: BSD-3-Clause
|
* SPDX-License-Identifier: BSD-3-Clause
|
||||||
*/
|
*/
|
||||||
|
@ -230,7 +230,6 @@ static inline context_pas_t get_cpu_context_index(uint32_t security_state)
|
||||||
* APIs for initialising and accessing per-cpu data
|
* APIs for initialising and accessing per-cpu data
|
||||||
*************************************************************************/
|
*************************************************************************/
|
||||||
|
|
||||||
void init_cpu_data_ptr(void);
|
|
||||||
void init_cpu_ops(void);
|
void init_cpu_ops(void);
|
||||||
|
|
||||||
#define get_cpu_data(_m) _cpu_data()->_m
|
#define get_cpu_data(_m) _cpu_data()->_m
|
||||||
|
|
|
@ -1,5 +1,5 @@
|
||||||
/*
|
/*
|
||||||
* Copyright (c) 2014-2020, Arm Limited and Contributors. All rights reserved.
|
* Copyright (c) 2014-2025, Arm Limited and Contributors. All rights reserved.
|
||||||
*
|
*
|
||||||
* SPDX-License-Identifier: BSD-3-Clause
|
* SPDX-License-Identifier: BSD-3-Clause
|
||||||
*/
|
*/
|
||||||
|
@ -7,28 +7,8 @@
|
||||||
#include <asm_macros.S>
|
#include <asm_macros.S>
|
||||||
#include <lib/el3_runtime/cpu_data.h>
|
#include <lib/el3_runtime/cpu_data.h>
|
||||||
|
|
||||||
.globl init_cpu_data_ptr
|
|
||||||
.globl _cpu_data_by_index
|
.globl _cpu_data_by_index
|
||||||
|
|
||||||
/* -----------------------------------------------------------------
|
|
||||||
* void init_cpu_data_ptr(void)
|
|
||||||
*
|
|
||||||
* Initialise the TPIDR_EL3 register to refer to the cpu_data_t
|
|
||||||
* for the calling CPU. This must be called before cm_get_cpu_data()
|
|
||||||
*
|
|
||||||
* This can be called without a valid stack. It assumes that
|
|
||||||
* plat_my_core_pos() does not clobber register x10.
|
|
||||||
* clobbers: x0, x1, x10
|
|
||||||
* -----------------------------------------------------------------
|
|
||||||
*/
|
|
||||||
func init_cpu_data_ptr
|
|
||||||
mov x10, x30
|
|
||||||
bl plat_my_core_pos
|
|
||||||
bl _cpu_data_by_index
|
|
||||||
msr tpidr_el3, x0
|
|
||||||
ret x10
|
|
||||||
endfunc init_cpu_data_ptr
|
|
||||||
|
|
||||||
/* -----------------------------------------------------------------
|
/* -----------------------------------------------------------------
|
||||||
* cpu_data_t *_cpu_data_by_index(uint32_t cpu_index)
|
* cpu_data_t *_cpu_data_by_index(uint32_t cpu_index)
|
||||||
*
|
*
|
||||||
|
|
Loading…
Add table
Reference in a new issue