1/* SPDX-License-Identifier: GPL-2.0 */
2#ifndef ARCH_PERF_REGS_H
3#define ARCH_PERF_REGS_H
4
5#include <stdlib.h>
6#include <linux/types.h>
7#include <asm/perf_regs.h>
8
9void perf_regs_load(u64 *regs);
10
11#define PERF_REGS_MAX PERF_REG_X86_XMM_MAX
12#ifndef HAVE_ARCH_X86_64_SUPPORT
13#define PERF_REGS_MASK ((1ULL << PERF_REG_X86_32_MAX) - 1)
14#define PERF_SAMPLE_REGS_ABI PERF_SAMPLE_REGS_ABI_32
15#else
16#define REG_NOSUPPORT ((1ULL << PERF_REG_X86_DS) | \
17		       (1ULL << PERF_REG_X86_ES) | \
18		       (1ULL << PERF_REG_X86_FS) | \
19		       (1ULL << PERF_REG_X86_GS))
20#define PERF_REGS_MASK (((1ULL << PERF_REG_X86_64_MAX) - 1) & ~REG_NOSUPPORT)
21#define PERF_SAMPLE_REGS_ABI PERF_SAMPLE_REGS_ABI_64
22#endif
23
24#endif /* ARCH_PERF_REGS_H */
25