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

Subversion Repositories or1k

[/] [or1k/] [trunk/] [insight/] [sim/] [ppc/] [sim-endian-n.h] - Blame information for rev 578

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

Line No. Rev Author Line
1 578 markom
/*  This file is part of the program psim.
2
 
3
    Copyright (C) 1994-1995, Andrew Cagney <cagney@highland.com.au>
4
 
5
    This program is free software; you can redistribute it and/or modify
6
    it under the terms of the GNU General Public License as published by
7
    the Free Software Foundation; either version 2 of the License, or
8
    (at your option) any later version.
9
 
10
    This program is distributed in the hope that it will be useful,
11
    but WITHOUT ANY WARRANTY; without even the implied warranty of
12
    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
13
    GNU General Public License for more details.
14
 
15
    You should have received a copy of the GNU General Public License
16
    along with this program; if not, write to the Free Software
17
    Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
18
 
19
    */
20
 
21
 
22
#ifndef N
23
#error "N must be #defined"
24
#endif
25
 
26
/* NOTE: See end of file for #undef */
27
#define unsigned_N XCONCAT2(unsigned_,N)
28
#define endian_t2h_N XCONCAT2(endian_t2h_,N)
29
#define endian_h2t_N XCONCAT2(endian_h2t_,N)
30
#define _SWAP_N XCONCAT2(_SWAP_,N)
31
#define swap_N XCONCAT2(swap_,N)
32
#define endian_h2be_N XCONCAT2(endian_h2be_,N)
33
#define endian_be2h_N XCONCAT2(endian_be2h_,N)
34
#define endian_h2le_N XCONCAT2(endian_h2le_,N)
35
#define endian_le2h_N XCONCAT2(endian_le2h_,N)
36
 
37
 
38
INLINE_SIM_ENDIAN\
39
(unsigned_N)
40
endian_t2h_N(unsigned_N raw_in)
41
{
42
  if (CURRENT_TARGET_BYTE_ORDER == CURRENT_HOST_BYTE_ORDER) {
43
    return raw_in;
44
  }
45
  else {
46
    _SWAP_N(return,raw_in);
47
  }
48
}
49
 
50
 
51
INLINE_SIM_ENDIAN\
52
(unsigned_N)
53
endian_h2t_N(unsigned_N raw_in)
54
{
55
  if (CURRENT_TARGET_BYTE_ORDER == CURRENT_HOST_BYTE_ORDER) {
56
    return raw_in;
57
  }
58
  else {
59
    _SWAP_N(return,raw_in);
60
  }
61
}
62
 
63
 
64
INLINE_SIM_ENDIAN\
65
(unsigned_N)
66
swap_N(unsigned_N raw_in)
67
{
68
  _SWAP_N(return,raw_in);
69
}
70
 
71
 
72
 
73
INLINE_SIM_ENDIAN\
74
(unsigned_N)
75
endian_h2be_N(unsigned_N raw_in)
76
{
77
  if (CURRENT_HOST_BYTE_ORDER == BIG_ENDIAN) {
78
    return raw_in;
79
  }
80
  else {
81
    _SWAP_N(return,raw_in);
82
  }
83
}
84
 
85
 
86
INLINE_SIM_ENDIAN\
87
(unsigned_N)
88
endian_be2h_N(unsigned_N raw_in)
89
{
90
  if (CURRENT_HOST_BYTE_ORDER == BIG_ENDIAN) {
91
    return raw_in;
92
  }
93
  else {
94
    _SWAP_N(return,raw_in);
95
  }
96
}
97
 
98
 
99
INLINE_SIM_ENDIAN\
100
(unsigned_N)
101
endian_h2le_N(unsigned_N raw_in)
102
{
103
  if (CURRENT_HOST_BYTE_ORDER == LITTLE_ENDIAN) {
104
    return raw_in;
105
  }
106
  else {
107
    _SWAP_N(return,raw_in);
108
  }
109
}
110
 
111
 
112
INLINE_SIM_ENDIAN\
113
(unsigned_N)
114
endian_le2h_N(unsigned_N raw_in)
115
{
116
  if (CURRENT_HOST_BYTE_ORDER == LITTLE_ENDIAN) {
117
    return raw_in;
118
  }
119
  else {
120
    _SWAP_N(return,raw_in);
121
  }
122
}
123
 
124
 
125
/* NOTE: See start of file for #define */
126
#undef unsigned_N
127
#undef endian_t2h_N
128
#undef endian_h2t_N
129
#undef _SWAP_N
130
#undef swap_N
131
#undef endian_h2be_N
132
#undef endian_be2h_N
133
#undef endian_h2le_N
134
#undef endian_le2h_N

powered by: WebSVN 2.1.0

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