xref: /netbsd-src/external/gpl3/gdb/dist/gdbserver/linux-ppc-tdesc-init.h (revision 64f917f5a88990e32dd65fcd4348042fa7f852b9)
18dffb485Schristos /* Low level support for ppc, shared between gdbserver and IPA.
28dffb485Schristos 
3*64f917f5Schristos    Copyright (C) 2016-2024 Free Software Foundation, Inc.
48dffb485Schristos 
58dffb485Schristos    This file is part of GDB.
68dffb485Schristos 
78dffb485Schristos    This program is free software; you can redistribute it and/or modify
88dffb485Schristos    it under the terms of the GNU General Public License as published by
98dffb485Schristos    the Free Software Foundation; either version 3 of the License, or
108dffb485Schristos    (at your option) any later version.
118dffb485Schristos 
128dffb485Schristos    This program is distributed in the hope that it will be useful,
138dffb485Schristos    but WITHOUT ANY WARRANTY; without even the implied warranty of
148dffb485Schristos    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
158dffb485Schristos    GNU General Public License for more details.
168dffb485Schristos 
178dffb485Schristos    You should have received a copy of the GNU General Public License
188dffb485Schristos    along with this program.  If not, see <http://www.gnu.org/licenses/>.  */
198dffb485Schristos 
208dffb485Schristos #ifndef GDBSERVER_LINUX_PPC_TDESC_INIT_H
218dffb485Schristos #define GDBSERVER_LINUX_PPC_TDESC_INIT_H
228dffb485Schristos 
238dffb485Schristos /* Note: since IPA obviously knows what ABI it's running on (32 vs 64),
248dffb485Schristos    it's sufficient to pass only the register set here.  This, together with
258dffb485Schristos    the ABI known at IPA compile time, maps to a tdesc.  */
268dffb485Schristos 
278dffb485Schristos enum ppc_linux_tdesc {
288dffb485Schristos   PPC_TDESC_BASE,
298dffb485Schristos   PPC_TDESC_ALTIVEC,
308dffb485Schristos   PPC_TDESC_CELL,  /* No longer used, but kept to avoid ABI changes.  */
318dffb485Schristos   PPC_TDESC_VSX,
328dffb485Schristos   PPC_TDESC_ISA205,
338dffb485Schristos   PPC_TDESC_ISA205_ALTIVEC,
348dffb485Schristos   PPC_TDESC_ISA205_VSX,
358dffb485Schristos   PPC_TDESC_ISA205_PPR_DSCR_VSX,
368dffb485Schristos   PPC_TDESC_ISA207_VSX,
378dffb485Schristos   PPC_TDESC_ISA207_HTM_VSX,
388dffb485Schristos   PPC_TDESC_E500,
398dffb485Schristos };
408dffb485Schristos 
418dffb485Schristos #if !defined __powerpc64__ || !defined IN_PROCESS_AGENT
428dffb485Schristos 
438dffb485Schristos /* Defined in auto-generated file powerpc-32l.c.  */
448dffb485Schristos void init_registers_powerpc_32l (void);
458dffb485Schristos 
468dffb485Schristos /* Defined in auto-generated file powerpc-altivec32l.c.  */
478dffb485Schristos void init_registers_powerpc_altivec32l (void);
488dffb485Schristos 
498dffb485Schristos /* Defined in auto-generated file powerpc-vsx32l.c.  */
508dffb485Schristos void init_registers_powerpc_vsx32l (void);
518dffb485Schristos 
528dffb485Schristos /* Defined in auto-generated file powerpc-isa205-32l.c.  */
538dffb485Schristos void init_registers_powerpc_isa205_32l (void);
548dffb485Schristos 
558dffb485Schristos /* Defined in auto-generated file powerpc-isa205-altivec32l.c.  */
568dffb485Schristos void init_registers_powerpc_isa205_altivec32l (void);
578dffb485Schristos 
588dffb485Schristos /* Defined in auto-generated file powerpc-isa205-vsx32l.c.  */
598dffb485Schristos void init_registers_powerpc_isa205_vsx32l (void);
608dffb485Schristos 
618dffb485Schristos /* Defined in auto-generated file powerpc-isa205-ppr-dscr-vsx32l.c.  */
628dffb485Schristos void init_registers_powerpc_isa205_ppr_dscr_vsx32l (void);
638dffb485Schristos 
648dffb485Schristos /* Defined in auto-generated file powerpc-isa207-vsx32l.c.  */
658dffb485Schristos void init_registers_powerpc_isa207_vsx32l (void);
668dffb485Schristos 
678dffb485Schristos /* Defined in auto-generated file powerpc-isa207-htm-vsx32l.c.  */
688dffb485Schristos void init_registers_powerpc_isa207_htm_vsx32l (void);
698dffb485Schristos 
708dffb485Schristos /* Defined in auto-generated file powerpc-e500l.c.  */
718dffb485Schristos void init_registers_powerpc_e500l (void);
728dffb485Schristos 
738dffb485Schristos #endif
748dffb485Schristos 
758dffb485Schristos #if defined __powerpc64__
768dffb485Schristos 
778dffb485Schristos /* Defined in auto-generated file powerpc-64l.c.  */
788dffb485Schristos void init_registers_powerpc_64l (void);
798dffb485Schristos 
808dffb485Schristos /* Defined in auto-generated file powerpc-altivec64l.c.  */
818dffb485Schristos void init_registers_powerpc_altivec64l (void);
828dffb485Schristos 
838dffb485Schristos /* Defined in auto-generated file powerpc-vsx64l.c.  */
848dffb485Schristos void init_registers_powerpc_vsx64l (void);
858dffb485Schristos 
868dffb485Schristos /* Defined in auto-generated file powerpc-isa205-64l.c.  */
878dffb485Schristos void init_registers_powerpc_isa205_64l (void);
888dffb485Schristos 
898dffb485Schristos /* Defined in auto-generated file powerpc-isa205-altivec64l.c.  */
908dffb485Schristos void init_registers_powerpc_isa205_altivec64l (void);
918dffb485Schristos 
928dffb485Schristos /* Defined in auto-generated file powerpc-isa205-vsx64l.c.  */
938dffb485Schristos void init_registers_powerpc_isa205_vsx64l (void);
948dffb485Schristos 
958dffb485Schristos /* Defined in auto-generated file powerpc-isa205-ppr-dscr-vsx64l.c.  */
968dffb485Schristos void init_registers_powerpc_isa205_ppr_dscr_vsx64l (void);
978dffb485Schristos 
988dffb485Schristos /* Defined in auto-generated file powerpc-isa207-vsx64l.c.  */
998dffb485Schristos void init_registers_powerpc_isa207_vsx64l (void);
1008dffb485Schristos 
1018dffb485Schristos /* Defined in auto-generated file powerpc-isa207-htm-vsx64l.c.  */
1028dffb485Schristos void init_registers_powerpc_isa207_htm_vsx64l (void);
1038dffb485Schristos 
1048dffb485Schristos #endif
1058dffb485Schristos 
1068dffb485Schristos #endif /* GDBSERVER_LINUX_PPC_TDESC_INIT_H */
107