OpenCores
URL https://opencores.org/ocsvn/or1k/or1k/trunk

Subversion Repositories or1k

[/] [or1k/] [trunk/] [insight/] [sim/] [ppc/] [words.h] - Blame information for rev 1771

Go to most recent revision | Details | Compare with Previous | View Log

Line No. Rev Author Line
1 578 markom
/* This file is part of psim (model of the PowerPC(tm) architecture)
2
 
3
   Copyright (C) 1994-1995, Andrew Cagney <cagney@highland.com.au>
4
 
5
   This library is free software; you can redistribute it and/or
6
   modify it under the terms of the GNU Library General Public License
7
   as published by the Free Software Foundation; either version 2 of
8
   the License, or (at your option) any later version.
9
 
10
   This library is distributed in the hope that it will be useful, but
11
   WITHOUT ANY WARRANTY; without even the implied warranty of
12
   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
13
   Library General Public License for more details.
14
 
15
   You should have received a copy of the GNU Library General Public
16
   License along with this library; if not, write to the Free Software
17
   Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
18
 
19
   --
20
 
21
   PowerPC is a trademark of International Business Machines Corporation. */
22
 
23
 
24
/* Basic type sizes for the PowerPC */
25
 
26
#ifndef _WORDS_H_
27
#define _WORDS_H_
28
 
29
/* TYPES:
30
 
31
     natural*   sign determined by host
32
     signed*    signed type of the given size
33
     unsigned*  The corresponding insigned type
34
 
35
   SIZES
36
 
37
     *NN        Size based on the number of bits
38
     *_NN       Size according to the number of bytes
39
     *_word     Size based on the target architecture's word
40
                word size (32/64 bits)
41
     *_cell     Size based on the target architecture's
42
                IEEE 1275 cell size (almost always 32 bits)
43
 
44
*/
45
 
46
 
47
/* bit based */
48
typedef char natural8;
49
typedef short natural16;
50
typedef long natural32;
51
 
52
typedef signed char signed8;
53
typedef signed short signed16;
54
typedef signed long signed32;
55
 
56
typedef unsigned char unsigned8;
57
typedef unsigned short unsigned16;
58
typedef unsigned long unsigned32;
59
 
60
#ifdef __GNUC__
61
typedef long long natural64;
62
typedef signed long long signed64;
63
typedef unsigned long long unsigned64;
64
#endif
65
 
66
#ifdef _MSC_VER
67
typedef __int64 natural64;
68
typedef signed __int64 signed64;
69
typedef unsigned __int64 unsigned64;
70
#endif 
71
 
72
 
73
/* byte based */
74
typedef natural8 natural_1;
75
typedef natural16 natural_2;
76
typedef natural32 natural_4;
77
typedef natural64 natural_8;
78
 
79
typedef signed8 signed_1;
80
typedef signed16 signed_2;
81
typedef signed32 signed_4;
82
typedef signed64 signed_8;
83
 
84
typedef unsigned8 unsigned_1;
85
typedef unsigned16 unsigned_2;
86
typedef unsigned32 unsigned_4;
87
typedef unsigned64 unsigned_8;
88
 
89
 
90
/* for general work, the following are defined */
91
/* unsigned: >= 32 bits */
92
/* signed:   >= 32 bits */
93
/* long:     >= 32 bits, sign undefined */
94
/* int:      small indicator */
95
 
96
/* target architecture based */
97
#if (WITH_TARGET_WORD_BITSIZE == 64)
98
typedef natural64 natural_word;
99
typedef unsigned64 unsigned_word;
100
typedef signed64 signed_word;
101
#else
102
typedef natural32 natural_word;
103
typedef unsigned32 unsigned_word;
104
typedef signed32 signed_word;
105
#endif
106
 
107
 
108
/* Other instructions */
109
typedef unsigned32 instruction_word;
110
 
111
/* IEEE 1275 cell size - only support 32bit mode at present */
112
typedef natural32 natural_cell;
113
typedef unsigned32 unsigned_cell;
114
typedef signed32 signed_cell;
115
 
116
#endif /* _WORDS_H_ */

powered by: WebSVN 2.1.0

© copyright 1999-2024 OpenCores.org, equivalent to Oliscience, all rights reserved. OpenCores®, registered trademark.