123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778 |
- /* Common target dependent code for GNU/Linux on PPC systems.
- Copyright (C) 2018-2022 Free Software Foundation, Inc.
- This file is part of GDB.
- This program is free software; you can redistribute it and/or modify
- it under the terms of the GNU General Public License as published by
- the Free Software Foundation; either version 3 of the License, or
- (at your option) any later version.
- This program is distributed in the hope that it will be useful,
- but WITHOUT ANY WARRANTY; without even the implied warranty of
- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- GNU General Public License for more details.
- You should have received a copy of the GNU General Public License
- along with this program. If not, see <http://www.gnu.org/licenses/>. */
- #ifndef ARCH_PPC_LINUX_COMMON_H
- #define ARCH_PPC_LINUX_COMMON_H
- struct target_desc;
- /* The core file VMX regset has 34 16-byte fields (32 16-byte vector
- registers, plus two fields containing 4-byte registers, VSCR and
- VRSAVE), while the ptrace calls return or read 33 16-byte fields
- plus a 4-byte field for VRSAVE. For simplicity we use the longer
- length for both cases. */
- #define PPC_LINUX_SIZEOF_VRREGSET 544
- #define PPC_LINUX_SIZEOF_VSXREGSET 256
- #define PPC_LINUX_SIZEOF_PPRREGSET 8
- #define PPC_LINUX_SIZEOF_DSCRREGSET 8
- #define PPC_LINUX_SIZEOF_TARREGSET 8
- #define PPC_LINUX_SIZEOF_EBBREGSET (3*8)
- #define PPC_LINUX_SIZEOF_PMUREGSET (5*8)
- #define PPC_LINUX_SIZEOF_TM_SPRREGSET (3*8)
- #define PPC32_LINUX_SIZEOF_CGPRREGSET (48*4)
- #define PPC64_LINUX_SIZEOF_CGPRREGSET (48*8)
- #define PPC_LINUX_SIZEOF_CFPRREGSET (32*8+8)
- #define PPC_LINUX_SIZEOF_CVMXREGSET (34*16)
- #define PPC_LINUX_SIZEOF_CVSXREGSET (32*8)
- #define PPC_LINUX_SIZEOF_CPPRREGSET 8
- #define PPC_LINUX_SIZEOF_CDSCRREGSET 8
- #define PPC_LINUX_SIZEOF_CTARREGSET 8
- /* Check if the hwcap auxv entry indicates that isa205 is supported. */
- bool ppc_linux_has_isa205 (CORE_ADDR hwcap);
- /* Features used to determine the target description. */
- struct ppc_linux_features
- {
- unsigned int wordsize;
- bool altivec;
- bool vsx;
- bool isa205;
- bool ppr_dscr;
- bool isa207;
- bool htm;
- };
- /* Base value for ppc_linux_features variables. */
- const struct ppc_linux_features ppc_linux_no_features = {
- 0,
- false,
- false,
- false,
- false,
- false,
- false,
- };
- /* Return a target description that matches FEATURES. */
- const struct target_desc * ppc_linux_match_description
- (struct ppc_linux_features features);
- #endif /* ARCH_PPC_LINUX_COMMON_H */
|