mirror of
https://github.com/espressif/binutils-gdb.git
synced 2025-07-15 05:01:13 +08:00
* arm-linux-tdep.c: Include "auxv.h".
(AT_HWCAP): Define. (ARM_LINUX_SIZEOF_VFP): Define. (arm_linux_supply_vfp): New function. (arm_linux_collect_vfp): Likewise. (arm_linux_regset_from_core_section): Handle .reg-arm-vfp sections. (arm_linux_fpa_regset_sections): New variable. (arm_linux_vfp_regset_sections): Likewise. (arm_linux_core_read_description): New function. (arm_linux_init_abi): Install arm_linux_core_read_description and arm_linux_fpa_regset_sections or arm_linux_vfp_regset_sections as appropriate for the architecture. * arm-tdep.h (struct gdbarch_tdep): Add member "vfpregset". (tdesc_arm_with_m): Declare. (tdesc_arm_with_iwmmxt): Likewise. (tdesc_arm_with_vfpv2): Likewise. (tdesc_arm_with_vfpv3): Likewise. (tdesc_arm_with_neon): Likewise. * arm-linux-nat.c: Move features/*.c includes ... * arm-tdep.c: ... here. * arm-linux-nat.c (arm_linux_read_description): Move initializing target description data structures ... * arm-tdep.c (_initialize_arm_tdep): ... here. * arm-linux-nat.c (HWCAP_VFP, HWCAP_IWMMXT, HWCAP_NEON, HWCAP_VFPv3, HWCAP_VFPv3D16): Move definitions ... * arm-linux-tdep.h: ... here.
This commit is contained in:
@ -44,11 +44,6 @@
|
||||
/* Defines ps_err_e, struct ps_prochandle. */
|
||||
#include "gdb_proc_service.h"
|
||||
|
||||
#include "features/arm-with-iwmmxt.c"
|
||||
#include "features/arm-with-vfpv2.c"
|
||||
#include "features/arm-with-vfpv3.c"
|
||||
#include "features/arm-with-neon.c"
|
||||
|
||||
#ifndef PTRACE_GET_THREAD_AREA
|
||||
#define PTRACE_GET_THREAD_AREA 22
|
||||
#endif
|
||||
@ -68,13 +63,6 @@
|
||||
#define PTRACE_SETHBPREGS 30
|
||||
#endif
|
||||
|
||||
/* These are in <asm/elf.h> in current kernels. */
|
||||
#define HWCAP_VFP 64
|
||||
#define HWCAP_IWMMXT 512
|
||||
#define HWCAP_NEON 4096
|
||||
#define HWCAP_VFPv3 8192
|
||||
#define HWCAP_VFPv3D16 16384
|
||||
|
||||
/* A flag for whether the WMMX registers are available. */
|
||||
static int arm_linux_has_wmmx_registers;
|
||||
|
||||
@ -696,8 +684,6 @@ arm_linux_read_description (struct target_ops *ops)
|
||||
if (arm_hwcap & HWCAP_IWMMXT)
|
||||
{
|
||||
arm_linux_has_wmmx_registers = 1;
|
||||
if (tdesc_arm_with_iwmmxt == NULL)
|
||||
initialize_tdesc_arm_with_iwmmxt ();
|
||||
return tdesc_arm_with_iwmmxt;
|
||||
}
|
||||
|
||||
@ -712,22 +698,16 @@ arm_linux_read_description (struct target_ops *ops)
|
||||
if (arm_hwcap & HWCAP_NEON)
|
||||
{
|
||||
arm_linux_vfp_register_count = 32;
|
||||
if (tdesc_arm_with_neon == NULL)
|
||||
initialize_tdesc_arm_with_neon ();
|
||||
result = tdesc_arm_with_neon;
|
||||
}
|
||||
else if ((arm_hwcap & (HWCAP_VFPv3 | HWCAP_VFPv3D16)) == HWCAP_VFPv3)
|
||||
{
|
||||
arm_linux_vfp_register_count = 32;
|
||||
if (tdesc_arm_with_vfpv3 == NULL)
|
||||
initialize_tdesc_arm_with_vfpv3 ();
|
||||
result = tdesc_arm_with_vfpv3;
|
||||
}
|
||||
else
|
||||
{
|
||||
arm_linux_vfp_register_count = 16;
|
||||
if (tdesc_arm_with_vfpv2 == NULL)
|
||||
initialize_tdesc_arm_with_vfpv2 ();
|
||||
result = tdesc_arm_with_vfpv2;
|
||||
}
|
||||
|
||||
|
Reference in New Issue
Block a user