1 /* Copyright (C) 1999, 2001, 2002 Free Software Foundation, Inc.
2 This file is part of the GNU C Library.
4 The GNU C Library is free software; you can redistribute it and/or
5 modify it under the terms of the GNU Lesser General Public
6 License as published by the Free Software Foundation; either
7 version 2.1 of the License, or (at your option) any later version.
9 The GNU C Library is distributed in the hope that it will be useful,
10 but WITHOUT ANY WARRANTY; without even the implied warranty of
11 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
12 Lesser General Public License for more details.
14 You should have received a copy of the GNU Lesser General Public
15 License along with the GNU C Library; if not, write to the Free
16 Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
20 * Powerpc Feature masks for the Aux Vector Hardware Capabilities (AT_HWCAP).
21 * This entry is copied to _dl_hwcap or rtld_global._dl_hwcap during startup.
22 * The following must match the kernels linux/asm/cputable.h.
24 #define PPC_FEATURE_32 0x80000000 /* 32-bit mode. */
25 #define PPC_FEATURE_64 0x40000000 /* 64-bit mode. */
26 #define PPC_FEATURE_601_INSTR 0x20000000 /* 601 chip, Old POWER ISA. */
27 #define PPC_FEATURE_HAS_ALTIVEC 0x10000000 /* SIMD/Vector Unit. */
28 #define PPC_FEATURE_HAS_FPU 0x08000000 /* Floating Point Unit. */
29 #define PPC_FEATURE_HAS_MMU 0x04000000 /* Memory Management Unit. */
30 #define PPC_FEATURE_HAS_4xxMAC 0x02000000 /* 4xx Multiply Accumulator. */
31 #define PPC_FEATURE_UNIFIED_CACHE 0x01000000 /* Unified I/D cache. */
35 /* Symbolic names for the registers. The only portable way to write asm
36 code is to use number but this produces really unreadable code.
37 Therefore these symbolic names. */
39 /* Integer registers. */
73 /* Floating-point registers. */
107 /* Condition code registers. */
117 /* Vector registers. */
156 /* This seems to always be the case on PPC. */
157 #define ALIGNARG(log2) log2
158 /* For ELF we need the `.type' directive to make shared libs work right. */
159 #define ASM_TYPE_DIRECTIVE(name,typearg) .type name,typearg;
160 #define ASM_SIZE_DIRECTIVE(name) .size name,.-name
163 #endif /* __ASSEMBLER__ */