source: rtems/cpukit/score/cpu/powerpc/rtems/score/powerpc.h @ 9b4422a2

4.115
Last change on this file since 9b4422a2 was 9b4422a2, checked in by Joel Sherrill <joel.sherrill@…>, on 05/03/12 at 15:09:24

Remove All CVS Id Strings Possible Using a Script

Script does what is expected and tries to do it as
smartly as possible.

+ remove occurrences of two blank comment lines

next to each other after Id string line removed.

+ remove entire comment blocks which only exited to

contain CVS Ids

+ If the processing left a blank line at the top of

a file, it was removed.

  • Property mode set to 100644
File size: 3.8 KB
Line 
1/**
2 * @file rtems/score/powerpc.h
3 */
4
5/*
6 *  This file contains definitions for the IBM/Motorola PowerPC
7 *  family members.
8 *
9 *  Author:     Andrew Bray <andy@i-cubed.co.uk>
10 *
11 *  COPYRIGHT (c) 1995 by i-cubed ltd.
12 *
13 *  MPC860 support code was added by Jay Monkman <jmonkman@frasca.com>
14 *  MPC8260 support added by Andy Dachs <a.dachs@sstl.co.uk>
15 *  Surrey Satellite Technology Limited
16 *
17 *  To anyone who acknowledges that this file is provided "AS IS"
18 *  without any express or implied warranty:
19 *      permission to use, copy, modify, and distribute this file
20 *      for any purpose is hereby granted without fee, provided that
21 *      the above copyright notice and this notice appears in all
22 *      copies, and that the name of i-cubed limited not be used in
23 *      advertising or publicity pertaining to distribution of the
24 *      software without specific, written prior permission.
25 *      i-cubed limited makes no representations about the suitability
26 *      of this software for any purpose.
27 *
28 *  Derived from c/src/exec/cpu/no_cpu/no_cpu.h:
29 *
30 *  COPYRIGHT (c) 1989-1997.
31 *  On-Line Applications Research Corporation (OAR).
32 *
33 *  The license and distribution terms for this file may in
34 *  the file LICENSE in this distribution or at
35 *  http://www.rtems.com/license/LICENSE.
36 *
37 *
38 * Note:
39 *      This file is included by both C and assembler code ( -DASM )
40 */
41
42
43#ifndef _RTEMS_SCORE_POWERPC_H
44#define _RTEMS_SCORE_POWERPC_H
45
46#ifdef __cplusplus
47extern "C" {
48#endif
49
50#include <rtems/score/types.h>
51
52/*
53 *  Define the name of the CPU family.
54 */
55
56#define CPU_NAME "PowerPC"
57
58/*
59 *  This file contains the information required to build
60 *  RTEMS for the PowerPC family.
61 */
62
63/* Generic ppc */
64
65#ifdef _SOFT_FLOAT
66#define CPU_MODEL_NAME "Generic (no FPU)"
67#elif defined(__NO_FPRS__) || defined(__SPE__)
68#define CPU_MODEL_NAME "Generic (E500/float-gprs/SPE)"
69#else
70#define CPU_MODEL_NAME "Generic (classic FPU)"
71#endif
72
73#define PPC_ALIGNMENT                   8
74#define PPC_STRUCTURE_ALIGNMENT 32
75
76/*
77 *  Application binary interfaces.
78 *
79 *  PPC_ABI MUST be defined as one of these.
80 *  Only big endian is currently supported.
81 */
82
83/*
84 *  SVR4 ABI
85 */
86#define PPC_ABI_SVR4            2
87/*
88 *  Embedded ABI
89 */
90#define PPC_ABI_EABI            3
91
92/*
93 *  Default to the EABI used by current GNU tools
94 */
95
96#ifndef PPC_ABI
97#define PPC_ABI PPC_ABI_EABI
98#endif
99
100#if (PPC_ABI == PPC_ABI_SVR4) || defined(__ALTIVEC__)
101#define PPC_STACK_ALIGNMENT     16
102#elif (PPC_ABI == PPC_ABI_EABI)
103#if 1
104/* Till.S: 2008/07/10; AFAIK, the CPU_STACK_ALIGNMENT is only
105 * used to align the top of the stack. We don't lose much
106 * if we always align TOS to 16-bytes but we then are always
107 * OK, even if the user tells the compiler to generate 16-byte
108 * alignment.
109 */
110#define PPC_STACK_ALIGNMENT     16
111#else
112#define PPC_STACK_ALIGNMENT     8
113#endif
114#else
115#error  "PPC_ABI is not properly defined"
116#endif
117
118/*
119 *  Assume PPC_HAS_FPU to be a synonym for _SOFT_FLOAT.
120 */
121
122#if defined(_SOFT_FLOAT) || defined(__NO_FPRS__) /* e500 has unified integer/FP registers */
123#define PPC_HAS_FPU 0
124#else
125#define PPC_HAS_FPU 1
126#endif
127
128/*
129 *  Unless specified above, If the model has FP support, it is assumed to
130 *  support doubles (8-byte floating point numbers).
131 *
132 *  If the model does NOT have FP support, then the model does
133 *  NOT have double length FP registers.
134 */
135
136#if (PPC_HAS_FPU)
137#define PPC_HAS_DOUBLE 1
138#else
139#define PPC_HAS_DOUBLE 0
140#endif
141
142/*
143 *  Assemblers.
144 *  PPC_ASM MUST be defined as one of these.
145 *
146 *  PPC_ASM_ELF:   ELF assembler. Currently used for all ABIs.
147 *
148 *  NOTE: Only PPC_ABI_ELF is currently fully supported.
149 *
150 *  Also NOTE: cpukit doesn't need this but asm.h which is defined
151 *             in cpukit for consistency with other ports does.
152 */
153
154#define PPC_ASM_ELF   0
155
156/*
157 *  Default to the assembler format used by the current GNU tools.
158 */
159#define PPC_ASM PPC_ASM_ELF
160
161
162#ifdef __cplusplus
163}
164#endif
165
166#endif /* _RTEMS_SCORE_POWERPC_H */
Note: See TracBrowser for help on using the repository browser.