My Project
UNKNOWN_GIT_VERSION
omalloc
omMemOps.h
Go to the documentation of this file.
1
/*******************************************************************
2
* File: omMemOps.h
3
* Purpose: low-level Macros for memory operations
4
* Author: obachman (Olaf Bachmann)
5
* Created: 11/99
6
*******************************************************************/
7
8
#ifndef OM_MEM_OPS_H
9
#define OM_MEM_OPS_H
10
11
#ifdef DO_DEEP_PROFILE
12
extern
void
_omMemcpyW(
long
* p1,
long
* p2,
long
l
);
13
#define omMemcpy_nwEVEN(p1, p2, l) _omMemcpyW((long*) p1, (long*) p2, (long) l)
14
#define omMemcpy_nwODD(p1, p2, l) _omMemcpyW((long*) p1, (long*) p2, (long) l)
15
#define omMemcpyW(p1, p2, l) _omMemcpyW((long*) p1, (long*) p2, (long) l)
16
17
extern
void
_omMemaddW(
long
* p1,
long
* p2,
long
* p3,
long
l
);
18
#define omMemaddW(p1, p2, p3, l) _omMemaddW(p1, p2, p3, l)
19
#define omMemadd_nwODD(p1, p2, p3, l) _omMemaddW(p1, p2, p3, l)
20
#define omMemadd_nwEVEN(p1, p2, p3, l) _omMemaddW(p1, p2, p3, l)
21
#define omMemadd_nwONE(p1, p2, p3) _omMemaddW(p1, p2, p3, 1)
22
#define omMemadd_nwTWO(p1, p2, p3) _omMemaddW(p1, p2, p3, 2)
23
24
extern
void
_omMemsetW(
long
* p1,
long
w
,
long
l
);
25
#define omMemsetW(p1, w, l) _omMemsetW(p1, w, l)
26
27
#else
/* ! DO_DEEP_PROFILE */
28
29
#define omMemcpyW(p1, p2, l) \
30
do \
31
{ \
32
long _i = l; \
33
long* _s1 = (long*) (p1); \
34
const long* _s2 = (long*) (p2); \
35
\
36
for (;;) \
37
{ \
38
*_s1 = *_s2; \
39
_i--; \
40
if (_i == 0) break; \
41
_s1++; \
42
_s2++; \
43
} \
44
} \
45
while(0)
46
47
#define omMemcpy_nwODD(p1, p2, l) \
48
do \
49
{ \
50
long _i = (l) - 1; \
51
long* _s1 = (long*) (p1); \
52
const long* _s2 = (long*) (p2); \
53
\
54
*_s1++ = *_s2++; \
55
for (;;) \
56
{ \
57
*_s1++ = *_s2++; \
58
*_s1++ = *_s2++; \
59
_i -= 2; \
60
if (_i == 0) break; \
61
} \
62
} \
63
while(0)
64
65
#define omMemcpy_nwEVEN(p1, p2, l) \
66
do \
67
{ \
68
long _i = l; \
69
long* _s1 = (long*) (p1); \
70
const long* _s2 = (long*) (p2); \
71
\
72
for (;;) \
73
{ \
74
*_s1++ = *_s2++; \
75
*_s1++ = *_s2++; \
76
_i -= 2; \
77
if (_i == 0) break; \
78
} \
79
} \
80
while(0)
81
82
#define omMemaddW(P1, P2, P3, L) \
83
do \
84
{ \
85
unsigned long* _p1 = P1; \
86
const unsigned long* _p2 = P2; \
87
const unsigned long* _p3 = P3; \
88
unsigned long l = L; \
89
\
90
do \
91
{ \
92
*_p1++ = *_p2++ + *_p3++; \
93
l--; \
94
} \
95
while(l); \
96
} \
97
while(0)
98
99
#define omMemadd_nwODD(P1, P2, P3, L) \
100
do \
101
{ \
102
unsigned long* _p1 = P1; \
103
const unsigned long* _p2 = P2; \
104
const unsigned long* _p3 = P3; \
105
unsigned long l = L; \
106
\
107
*_p1++ = *_p2++ + *_p3++; \
108
l--; \
109
\
110
do \
111
{ \
112
*_p1++ = *_p2++ + *_p3++; \
113
*_p1++ = *_p2++ + *_p3++; \
114
l -=2; \
115
} \
116
while(l); \
117
} \
118
while(0)
119
120
#define omMemadd_nwEVEN(P1, P2, P3, L) \
121
do \
122
{ \
123
unsigned long* _p1 = P1; \
124
const unsigned long* _p2 = P2; \
125
const unsigned long* _p3 = P3; \
126
unsigned long l = L; \
127
\
128
do \
129
{ \
130
*_p1++ = *_p2++ + *_p3++; \
131
*_p1++ = *_p2++ + *_p3++; \
132
l -=2; \
133
} \
134
while(l); \
135
} \
136
while(0)
137
138
#define omMemadd_nwONE(P1, P2, P3) \
139
do \
140
{ \
141
unsigned long* _p1 = P1; \
142
const unsigned long* _p2 = P2; \
143
const unsigned long* _p3 = P3; \
144
\
145
*_p1 = *_p2 + *_p3; \
146
} \
147
while(0)
148
149
#define omMemadd_nwTWO(P1, P2, P3) \
150
do \
151
{ \
152
unsigned long* _p1 = P1; \
153
const unsigned long* _p2 = P2; \
154
const unsigned long* _p3 = P3; \
155
\
156
*_p1++ = *_p2++ + *_p3++; \
157
*_p1 = *_p2 + *_p3; \
158
} \
159
while(0)
160
161
#define omMemsetW(P1, W, L) \
162
do \
163
{ \
164
long* _p1 = (long*) (P1); \
165
unsigned long _l = L; \
166
unsigned long _w = W; \
167
while(_l) \
168
{ \
169
*_p1++ = _w; \
170
_l--; \
171
} \
172
} \
173
while(0)
174
175
#endif
/* DO_DEEP_PROFILE */
176
177
#endif
/* OM_LIST_H */
w
const CanonicalForm & w
Definition:
facAbsFact.cc:55
l
int l
Definition:
cfEzgcd.cc:93
Generated on Sun Feb 17 2019 11:52:10 for My Project by
doxygen 1.8.15
for
Singular UNKNOWN_GIT_VERSION