Cube  Diff

Differences From Artifact [5a12c43f73]:

To Artifact [900cc870ab]:


1
2
3
4
5
6
7

8
9
10
11
12
13

14
15
16
17
18
19
20
21
22
23

24
25

26
27
28
29

30
31
32
33
34
35
36
1
2
3
4
5
6

7
8
9
10
11
12

13
14
15
16
17
18
19
20
21
22

23
24

25
26
27
28

29
30
31
32
33
34
35
36






-
+





-
+









-
+

-
+



-
+







// generic useful stuff for any C++ program

#ifndef _TOOLS_H
#define _TOOLS_H

#ifdef __GNUC__
#define gamma __gamma
# define gamma __gamma
#endif

#include <math.h>

#ifdef __GNUC__
#undef gamma
# undef gamma
#endif

#include <assert.h>
#include <limits.h>
#include <stdarg.h>
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#ifdef __GNUC__
#include <new>
# include <new>
#else
#include <new.h>
# include <new.h>
#endif

#ifdef NULL
#undef NULL
# undef NULL
#endif
#define NULL 0

typedef unsigned char uchar;
typedef unsigned short ushort;
typedef unsigned int uint;

45
46
47
48
49
50
51
52

53
54

55
56
57
58



59
60
61
62
63
64
65
45
46
47
48
49
50
51

52
53

54
55



56
57
58
59
60
61
62
63
64
65







-
+

-
+

-
-
-
+
+
+







#define loop(v, m) for (int v = 0; v < (m); v++)
#define loopi(m) loop(i, m)
#define loopj(m) loop(j, m)
#define loopk(m) loop(k, m)
#define loopl(m) loop(l, m)

#ifdef WIN32
#pragma warning(3 : 4189)
# pragma warning(3 : 4189)
// #pragma comment(linker,"/OPT:NOWIN98")
#define PATHDIV '\\'
# define PATHDIV '\\'
#else
#define __cdecl
#define _vsnprintf vsnprintf
#define PATHDIV '/'
# define __cdecl
# define _vsnprintf vsnprintf
# define PATHDIV '/'
#endif

// easy safe strings

#define _MAXDEFSTR 260
typedef char string[_MAXDEFSTR];

126
127
128
129
130
131
132
133

134
135
136
137
138
139
140
126
127
128
129
130
131
132

133
134
135
136
137
138
139
140







-
+







	int retval;

	__asm fld a __asm fsub fhalf __asm fistp retval // perf regalloc?

	    return retval;
};
#else
#define fast_f2nat(val) ((int)(val))
# define fast_f2nat(val) ((int)(val))
#endif

extern char *path(char *s);
extern char *loadfile(char *fn, int *size);
extern void endianswap(void *, int, int);

// memory pool that uses buckets and linear allocation for small objects