blob: 9ee81997960d786ab3a0cd0e1452eb011f121d56 [file] [log] [blame]
dp-arma97bd892016-08-15 10:35:54 +01001/*
2 * Copyright (c) 2016, ARM Limited and Contributors. All rights reserved.
3 *
dp-armfa3cf0b2017-05-03 09:38:09 +01004 * SPDX-License-Identifier: BSD-3-Clause
dp-arma97bd892016-08-15 10:35:54 +01005 */
6
7#ifndef __PMF_ASM_MACROS_S__
8#define __PMF_ASM_MACROS_S__
9
10#define PMF_TS_SIZE 8
11
12 /*
dp-armb28965e2016-09-08 11:51:49 +010013 * This macro calculates the address of the per-cpu timestamp
14 * for the given service name and local timestamp id.
dp-arma97bd892016-08-15 10:35:54 +010015 * Clobbers: x0 - x9
16 */
dp-armb28965e2016-09-08 11:51:49 +010017 .macro pmf_calc_timestamp_addr _name _tid
dp-arma97bd892016-08-15 10:35:54 +010018 mov x9, x30
19 bl plat_my_core_pos
20 mov x30, x9
21 ldr x1, =__PERCPU_TIMESTAMP_SIZE__
22 mov x2, #(\_tid * PMF_TS_SIZE)
23 madd x0, x0, x1, x2
24 ldr x1, =pmf_ts_mem_\_name
25 add x0, x0, x1
26 .endm
27
28#endif /* __PMF_ASM_MACROS_S__ */