]> git.ipfire.org Git - thirdparty/glibc.git/blame - sysdeps/powerpc/sysdep.h
(CFLAGS-tst-align.c): Add -mpreferred-stack-boundary=4.
[thirdparty/glibc.git] / sysdeps / powerpc / sysdep.h
CommitLineData
a334319f 1/* Copyright (C) 1999, 2001, 2002 Free Software Foundation, Inc.
be9cd93a
UD
2 This file is part of the GNU C Library.
3
4 The GNU C Library is free software; you can redistribute it and/or
41bdb6e2
AJ
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.
be9cd93a
UD
8
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
41bdb6e2 12 Lesser General Public License for more details.
be9cd93a 13
41bdb6e2
AJ
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
17 02111-1307 USA. */
be9cd93a 18
ffdd5e50
UD
19/*
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.
23 */
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. */
32
be9cd93a
UD
33#ifdef __ASSEMBLER__
34
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. */
38
39/* Integer registers. */
40#define r0 0
41#define r1 1
42#define r2 2
43#define r3 3
44#define r4 4
45#define r5 5
46#define r6 6
47#define r7 7
48#define r8 8
49#define r9 9
50#define r10 10
51#define r11 11
52#define r12 12
53#define r13 13
54#define r14 14
55#define r15 15
56#define r16 16
57#define r17 17
58#define r18 18
59#define r19 19
60#define r20 20
61#define r21 21
62#define r22 22
63#define r23 23
64#define r24 24
65#define r25 25
66#define r26 26
67#define r27 27
68#define r28 28
69#define r29 29
70#define r30 30
71#define r31 31
72
73/* Floating-point registers. */
74#define fp0 0
75#define fp1 1
76#define fp2 2
77#define fp3 3
78#define fp4 4
79#define fp5 5
80#define fp6 6
81#define fp7 7
82#define fp8 8
83#define fp9 9
84#define fp10 10
85#define fp11 11
86#define fp12 12
87#define fp13 13
88#define fp14 14
89#define fp15 15
90#define fp16 16
91#define fp17 17
92#define fp18 18
93#define fp19 19
94#define fp20 20
95#define fp21 21
96#define fp22 22
97#define fp23 23
98#define fp24 24
99#define fp25 25
100#define fp26 26
101#define fp27 27
102#define fp28 28
103#define fp29 29
104#define fp30 30
105#define fp31 31
106
107/* Condition code registers. */
108#define cr0 0
109#define cr1 1
110#define cr2 2
111#define cr3 3
112#define cr4 4
113#define cr5 5
114#define cr6 6
115#define cr7 7
116
5ef6ae4b
UD
117/* Vector registers. */
118#define v0 0
119#define v1 1
120#define v2 2
121#define v3 3
122#define v4 4
123#define v5 5
124#define v6 6
125#define v7 7
126#define v8 8
127#define v9 9
128#define v10 10
129#define v11 11
130#define v12 12
131#define v13 13
132#define v14 14
133#define v15 15
134#define v16 16
135#define v17 17
136#define v18 18
137#define v19 19
138#define v20 20
139#define v21 21
140#define v22 22
141#define v23 23
142#define v24 24
143#define v25 25
144#define v26 26
145#define v27 27
146#define v28 28
147#define v29 29
148#define v30 30
149#define v31 31
150
151#define VRSAVE 256
152
7ac887d4
RM
153
154#ifdef __ELF__
155
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
161
7ac887d4 162#endif /* __ELF__ */
7ac887d4 163#endif /* __ASSEMBLER__ */
ffdd5e50 164