my changes
[IRC.git] / Robust / src / Runtime / bamboo / multicorehelper.c
1 #include "multicoreruntime.h"
2 #include "multicorehelper.h"
3
4
5 #ifdef GC_1
6 // NUMCORES4GC = 1
7 unsigned int gc_core2block[2] = {0,1};
8
9 unsigned int gc_block2core[2] = { 0,  0};
10 #elif defined GC_2
11 // NUMCORES4GC = 2
12 unsigned int gc_core2block[4] = {
13   0,3,  
14   1,2
15 };
16
17 unsigned int gc_block2core[4] = {
18   0, 1, 
19   1, 0
20 };
21 #elif defined GC_4
22 // NUMCORES4GC = 4
23 unsigned int gc_core2block[8] = {
24   0,7,  3,4,  
25   1,6,  2,5
26 };
27
28 unsigned int gc_block2core[8] = {
29   0, 2, 3, 1,
30   1, 3, 2, 0
31 };
32 #elif defined GC_8
33 // NUMCORES4GC = 8
34 unsigned int gc_core2block[16] = {
35   0,15,   3,12,   4,11,   7,8, 
36   1,14,   2,13,   5,10,   6,9
37 };
38
39 unsigned int gc_block2core[16] = {
40   0,  4,  5,  1,  2,  6,  7,  3,
41   3,  7,  6,  2,  1,  5,  4,  0
42 };
43 #elif defined GC_16
44 // NUMCORES4GC = 16
45 unsigned int gc_core2block[32] = {
46   0,31,   7,24,   8,23,  15,16,
47   1,30,   6,25,   9,22,  14,17,
48   2,29,   5,26,  10,21,  13,18,
49   3,28,   4,27,  11,20,  12,19
50 };
51
52 unsigned int gc_block2core[32] = {
53   0,  4,  8, 12, 13,  9,  5,  1,
54   2,  6, 10, 14, 15, 11,  7,  3,
55   3,  7, 11, 15, 14, 10,  6,  2,
56   1,  5,  9, 13, 12,  8,  4,  0
57 };
58 #elif defined GC_32
59 // NUMCORES4GC = 32
60 unsigned int gc_core2block[64] = {
61   0,63,  15,48,  16,47,  31,32,   
62   1,62,  14,49,  17,46,  30,33,
63   2,61,  13,50,  18,45,  29,34, 
64   3,60,  12,51,  19,44,  28,35,
65   4,59,  11,52,  20,43,  27,36,  
66   5,58,  10,53,  21,42,  26,37,
67   6,57,   9,54,  22,41,  25,38,  
68   7,56,   8,55,  23,40,  24,39
69 };
70
71 unsigned int gc_block2core[64] = {
72   0,  4,  8, 12, 16, 20, 24, 28, 29, 25, 21, 17, 13,  9,  5,  1,
73   2,  6, 10, 14, 18, 22, 26, 30, 31, 27, 23, 19, 15, 11,  7,  3,
74   3,  7, 11, 15, 19, 23, 27, 31, 30, 26, 22, 18, 14, 10,  6,  2,
75   1,  5,  9, 13, 17, 21, 25, 29, 28, 24, 20, 16, 12,  8,  4,  0
76 };
77 #elif defined GC_40
78 // NUMCORES4GC = 40
79 unsigned int gc_core2block[80] = {
80   0,79,  15,64,  16,63,  31,48,  32,47,
81   1,78,  14,65,  17,62,  30,49,  33,46,
82   2,77,  13,66,  18,61,  29,50,  34,45,
83   3,76,  12,67,  19,60,  28,51,  35,44,
84   4,75,  11,68,  20,59,  27,52,  36,43,
85   5,74,  10,69,  21,58,  26,53,  37,42,
86   6,73,   9,70,  22,57,  25,54,  38,41,
87   7,72,   8,71,  23,56,  24,55,  39,40
88 };
89
90 unsigned int gc_block2core[80] = {
91   0,  5, 10, 15, 20, 25, 30, 35, 36, 31, 26, 21, 16, 11,  6,  1,
92   2,  7, 12, 17, 22, 27, 32, 37, 38, 33, 28, 23, 18, 13,  8,  3,
93   4,  9, 14, 19, 24, 29, 34, 39, 39, 34, 29, 24, 19, 14,  9,  4,
94   3,  8, 13, 18, 23, 28, 33, 38, 37, 32, 27, 22, 17, 12,  7,  2,
95   1,  6, 11, 16, 21, 26, 31, 36, 35, 30, 25, 20, 15, 10,  5,  0
96 };
97 #elif defined GC_44
98 // NUMCORES4GC = 44
99 unsigned int gc_core2block[88] = {
100   0,87,  15,72,  16,71,  31,56,  32,55,  43,44,
101   1,86,  14,73,  17,70,  30,57,  33,54,  42,45,
102   2,85,  13,74,  18,69,  29,58,  34,53,  41,46,
103   3,84,  12,75,  19,68,  28,59,  35,52,  40,47
104   4,83,  11,76,  20,67,  27,60,  36,51,
105   5,82,  10,77,  21,66,  26,61,  37,50,
106   6,81,   9,78,  22,65,  25,62,  38,49,
107   7,80,   8,79,  23,64,  24,63,  39,48
108 };
109
110 unsigned int gc_block2core[96] = {
111   0,  6, 12, 18, 24, 29, 34, 39, 40, 35, 30, 25, 19, 13,  7,  1,
112   2,  8, 14, 20, 26, 31, 38, 44, 45, 39, 33, 27, 21, 15,  9,  3,
113   4, 10, 16, 22, 28, 34, 40, 46, 47, 41, 35, 29, 23, 17, 11,  5,
114   5, 11, 17, 23, 29, 35, 41, 47, 46, 40, 34, 28, 22, 16, 10,  4,
115   3,  9, 15, 21, 27, 33, 39, 45, 44, 38, 32, 26, 20, 14,  8,  2,
116   1,  7, 13, 19, 25, 31, 37, 43, 42, 36, 30, 24, 18, 12,  6,  0
117 };
118 #elif defined GC_48
119 // NUMCORES4GC = 48
120 unsigned int gc_core2block[96] = {
121   0,95,  15,80,  16,79,  31,64,  32,63,  47,48,
122   1,94,  14,81,  17,78,  30,65,  33,62,  46,49,
123   2,93,  13,82,  18,77,  29,66,  34,61,  45,50,
124   3,92,  12,83,  19,76,  28,67,  35,60,  44,51,
125   4,91,  11,84,  20,75,  27,68,  36,59,  43,52,
126   5,90,  10,85,  21,74,  26,69,  37,58,  42,53,
127   6,89,   9,86,  22,73,  25,70,  38,57,  41,54,
128   7,88,   8,87,  23,72,  24,71,  39,56,  40,55
129 };
130
131 unsigned int gc_block2core[96] = {
132   0,  6, 12, 18, 24, 30, 36, 42, 43, 37, 31, 25, 19, 13,  7,  1,
133   2,  8, 14, 20, 26, 32, 38, 44, 45, 39, 33, 27, 21, 15,  9,  3,
134   4, 10, 16, 22, 28, 34, 40, 46, 47, 41, 35, 29, 23, 17, 11,  5,
135   5, 11, 17, 23, 29, 35, 41, 47, 46, 40, 34, 28, 22, 16, 10,  4,
136   3,  9, 15, 21, 27, 33, 39, 45, 44, 38, 32, 26, 20, 14,  8,  2,
137   1,  7, 13, 19, 25, 31, 37, 43, 42, 36, 30, 24, 18, 12,  6,  0
138 };
139 #elif defined GC_50
140 // NUMCORES4GC = 50
141 unsigned int gc_core2block[100] = {
142   0,99,  15,84,  16,83,  31,68,  32,67,  47,52,
143   1,98,  14,85,  17,82,  30,69,  33,66,  46,53,
144   2,97,  13,86,  18,81,  29,70,  34,65,  45,54,
145   3,96,  12,87,  19,80,  28,71,  35,64,  44,55,
146   4,95,  11,88,  20,79,  27,72,  36,63,  43,56,
147   5,94,  10,89,  21,78,  26,73,  37,62,  42,57,
148   6,93,   9,90,  22,77,  25,74,  38,61,  41,58,  48,51,
149   7,92,   8,91,  23,76,  24,75,  39,60,  40,59,  49,50
150 };
151
152 unsigned int gc_block2core[100] = {
153   0,  6, 12, 18, 24, 30, 36, 43, 44, 37, 31, 25, 19, 13,  7,  1,
154   2,  8, 14, 20, 26, 32, 38, 45, 46, 39, 33, 27, 21, 15,  9,  3,
155   4, 10, 16, 22, 28, 34, 40, 47, 48, 41, 35, 29, 23, 17, 11,  5,
156                          42, 49, 49, 42,
157   5, 11, 17, 23, 29, 35, 41, 48, 47, 40, 34, 28, 22, 16, 10,  4,
158   3,  9, 15, 21, 27, 33, 39, 46, 45, 38, 32, 26, 20, 14,  8,  2,
159   1,  7, 13, 19, 25, 31, 37, 44, 43, 36, 30, 24, 18, 12,  6,  0
160 };
161 #elif defined GC_56
162 // NUMCORES4GC = 56
163 unsigned int gc_core2block[112] = {
164   0,111,  15, 96,  16,95,  31,80,  32,79,  47,64,  48,63,
165   1,110,  14, 97,  17,94,  30,81,  33,78,  46,65,  49,62,
166   2,109,  13, 98,  18,93,  29,82,  34,77,  45,66,  50,61,
167   3,108,  12, 99,  19,92,  28,83,  35,76,  44,67,  51,60,
168   4,107,  11,100,  20,91,  27,84,  36,75,  43,68,  52,59,
169   5,106,  10,101,  21,90,  26,85,  37,74,  42,69,  53,58,
170   6,105,   9,102,  22,89,  25,86,  38,73,  41,70,  54,57,
171   7,104,   8,103,  23,88,  24,87,  39,72,  40,71,  55,56
172 };
173
174 unsigned int gc_block2core[112] = {
175   0,  7, 14, 21, 28, 35, 42, 49, 50, 43, 36, 29, 22, 15,  8,  1,
176   2,  9, 16, 23, 30, 37, 44, 51, 52, 45, 38, 31, 24, 17, 10,  3,
177   4, 11, 18, 25, 32, 39, 46, 53, 54, 47, 40, 33, 26, 19, 12,  5,
178   6, 13, 20, 27, 34, 41, 48, 55, 55, 48, 41, 34, 27, 20, 13,  6,
179   5, 12, 19, 26, 33, 40, 47, 54, 53, 46, 39, 32, 25, 18, 11,  4,
180   3, 10, 17, 24, 31, 38, 45, 52, 51, 44, 37, 30, 23, 16,  9,  2,
181   1,  8, 15, 22, 29, 36, 43, 50, 49, 42, 35, 28, 21, 14,  7,  0
182 };
183 #elif defined GC_62
184 // NUMCORES4GC = 62
185 unsigned int gc_core2block[124] = {
186   0,123,  15,108,  16,107,  31,92,  32,91,  47,76,
187   1,122,  14,109,  17,106,  30,93,  33,90,  46,77,  48,75,  61,62,
188   2,121,  13,110,  18,105,  29,94,  34,89,  45,78,  49,74,  60,63,
189   3,120,  12,111,  19,104,  28,95,  35,88,  44,79,  50,73,  59,64,
190   4,119,  11,112,  20,103,  27,96,  36,87,  43,80,  51,72,  58,65,
191   5,118,  10,113,  21,102,  26,97,  37,86,  42,81,  52,71,  57,66,
192   6,117,   9,114,  22,101,  25,98,  38,85,  41,82,  53,70,  56,67,
193   7,116,   8,115,  23,100,  24,99,  39,84,  40,83,  54,69,  55,68
194 };
195
196 unsigned int gc_block2core[124] = {
197   0,  6, 14, 22, 30, 38, 46, 54, 55, 47, 39, 31, 23, 15,  7,  1,
198   2,  8, 16, 24, 32, 40, 48, 56, 57, 49, 41, 33, 25, 17,  9,  3,
199   4, 10, 18, 26, 34, 42, 50, 58, 59, 51, 43, 35, 27, 19, 11,  5,
200   12, 20, 28, 36, 44, 52, 60, 61, 53, 45, 37, 29, 21, 13,
201   13, 21, 29, 37, 45, 53, 61, 60, 52, 44, 36, 28, 20, 12,
202   5, 11, 19, 27, 35, 43, 51, 59, 58, 50, 42, 34, 26, 18, 10,  4,
203   3,  9, 17, 25, 33, 41, 49, 57, 56, 48, 40, 32, 24, 16,  8,  2,
204   1,  7, 15, 23, 31, 39, 47, 55, 54, 46, 38, 30, 22, 14,  6,  0
205 };
206 #endif
207
208