20#include <sys/utsname.h>
22#include "gdbsupport/common-defs.h"
23#include "elf/external.h"
24#include "elf/common.h"
27#include "gdbsupport/common-regcache.h"
28#include "gdbsupport/byte-vector.h"
39 iovec.iov_len =
sizeof (header);
40 iovec.iov_base = &header;
56 warning (_(
"Invalid SVE state from kernel; SVE disabled."));
71 iovec.iov_len =
sizeof (header);
72 iovec.iov_base = &header;
122std::unique_ptr<gdb_byte[]>
137 std::unique_ptr<gdb_byte[]> buf (
new gdb_byte[iovec.iov_len]);
138 iovec.iov_base = buf.get ();
153 gdb_assert (src !=
nullptr && dst !=
nullptr);
154 gdb_assert (
size > 1);
156#if (__BYTE_ORDER == __BIG_ENDIAN)
157 for (
int i = 0; i <
size - 1; i++)
158 dst[i] = src[
size - i];
160 memcpy (dst, src,
size);
170 char *base = (
char *) buf;
179 error (_(
"Invalid SVE header from kernel."));
222 struct user_fpsimd_state *fpsimd
260 char *base = (
char *) buf;
266 error (_(
"Invalid SVE header from kernel."));
277 bool has_sve_state =
false;
279 struct user_fpsimd_state *fpsimd
290 reg,
sizeof (__int128_t));
366 sizeof (__int128_t));
void aarch64_sve_regs_copy_to_reg_buf(struct reg_buffer_common *reg_buf, const void *buf)
static void aarch64_maybe_swab128(gdb_byte *dst, const gdb_byte *src, size_t size)
std::unique_ptr< gdb_byte[]> aarch64_sve_get_sveregs(int tid)
void aarch64_sve_regs_copy_from_reg_buf(const struct reg_buffer_common *reg_buf, void *buf)
uint64_t aarch64_sve_get_vq(int tid)
bool aarch64_sve_set_vq(int tid, uint64_t vq)
#define HAS_SVE_STATE(header)
#define SVE_PT_SVE_FPSR_OFFSET(vq)
#define SVE_PT_SVE_FPCR_OFFSET(vq)
#define SVE_PT_SVE_FFR_OFFSET(vq)
#define SVE_PT_SVE_PREG_OFFSET(vq, n)
#define SVE_PT_SIZE(vq, flags)
#define SVE_PT_SVE_ZREG_SIZE(vq)
#define SVE_PT_FPSIMD_OFFSET
#define SVE_PT_SVE_ZREG_OFFSET(vq, n)
#define AARCH64_SVE_P_REGS_NUM
#define sve_vq_from_vl(vl)
#define sve_vl_from_vq(vq)
#define sve_vq_from_vg(vg)
#define sve_vg_from_vl(vl)
#define AARCH64_SVE_Z_REGS_NUM
#define sve_vg_from_vq(vq)
#define ptrace(request, pid, addr, data)
void perror_with_name(const char *string)