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