xref: /freebsd/sys/kern/subr_ticks.S (revision 159d29d3948294cdc9ee4cc3951d004de6797a32)
1/*-
2 * SPDX-License-Identifier: BSD-2-Clause
3 *
4 * Copyright (c) 2025 Mark Johnston <markj@FreeBSD.org>
5 */
6
7/*
8 * Define the "ticks" and "ticksl" variables.  The former is overlaid onto the
9 * low bits of the latter.
10 */
11
12#if defined(__aarch64__)
13#include <sys/elf_common.h>
14#include <machine/asm.h>
15
16GNU_PROPERTY_AARCH64_FEATURE_1_NOTE(GNU_PROPERTY_AARCH64_FEATURE_1_VAL)
17#endif
18
19#if __BYTE_ORDER__ == __ORDER_LITTLE_ENDIAN__
20#define	TICKS_OFFSET	0
21#else
22#define	TICKS_OFFSET	(__SIZEOF_LONG__ - __SIZEOF_INT__)
23#endif
24
25	.bss
26
27	.global ticksl
28	.type ticksl, %object
29	.balign __SIZEOF_LONG__
30ticksl:	.zero __SIZEOF_LONG__
31	.size ticksl, __SIZEOF_LONG__
32
33	.global ticks
34	.type ticks, %object
35ticks	=ticksl + TICKS_OFFSET
36	.size ticks, __SIZEOF_INT__
37