/* * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License version 2 as * published by the Free Software Foundation, or (at your option) any * later version. See the COPYING file in the top-level directory. */ #ifndef ALPHA_TARGET_ELF_H #define ALPHA_TARGET_ELF_H #define ELF_CLASS ELFCLASS64 #define ELF_MACHINE EM_ALPHA #define HAVE_ELF_CORE_DUMP 1 #define HAVE_ELF_HWCAP 1 /* * Matches the kernel's elf_gregset_t (ELF_NGREG = 33): * r0-r30 at indices 0-30, pc at 31, ps at 32. * r31 (hardwired zero) is not stored; pc occupies index 31. */ /* * The floating-point note holds $f0 through $f30 and then the control * register in the slot $f31 would occupy; $f31 reads as zero. */ #define HAVE_ELF_CORE_FPREGS 1 typedef struct target_elf_fpregset_t { uint64_t fpr[31]; /* $f0-$f30 */ uint64_t fpcr; /* the slot for $f31 */ } target_elf_fpregset_t; typedef struct target_elf_gregset_t { abi_ulong regs[31]; /* integer registers r0-r30 [0..30] */ abi_ulong pc; /* program counter [31] */ abi_ulong unique; /* thread's UNIQUE field [32] */ } target_elf_gregset_t; #endif