Skip to content

Commit 8de9214

Browse files
viccie30gavv
authored andcommitted
Fix build for big-endian targets
1 parent 73ebd5c commit 8de9214

File tree

4 files changed

+156
-0
lines changed

4 files changed

+156
-0
lines changed

src/CMakeLists.txt

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -34,3 +34,11 @@ target_link_libraries(openfec m)
3434

3535
#target_link_libraries(openfec pthread IL)
3636
#target_link_libraries(openfec pthread)
37+
38+
include(TestBigEndian)
39+
test_big_endian(BIG_ENDIAN)
40+
if(BIG_ENDIAN)
41+
target_compile_definitions(openfec PRIVATE OPENFEC_BIG_ENDIAN)
42+
else(BIG_ENDIAN)
43+
target_compile_definitions(openfec PRIVATE OPENFEC_LITTLE_ENDIAN)
44+
endif(BIG_ENDIAN)

src/lib_stable/reed-solomon_gf_2_8/of_reed-solomon_gf_2_8.c

Lines changed: 16 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -380,15 +380,31 @@ of_addmul1 (gf *dst1, gf *src1, gf c, int sz)
380380
for (; dst < lim ; dst += UNROLL, src += UNROLL)
381381
{
382382

383+
#if defined (OPENFEC_LITTLE_ENDIAN)
383384
tmp = ((UINT64)__gf_mulc_[src[0]]) | ((UINT64)__gf_mulc_[src[1]]<<8) | ((UINT64)__gf_mulc_[src[2]]<<16) |
384385
((UINT64)__gf_mulc_[src[3]]<<24) | ((UINT64)__gf_mulc_[src[4]]<<32) | ((UINT64)__gf_mulc_[src[5]]<<40) |
385386
((UINT64)__gf_mulc_[src[6]]<<48) | ((UINT64)__gf_mulc_[src[7]]<<56) ;
387+
#elif defined (OPENFEC_BIG_ENDIAN)
388+
tmp = ((UINT64)__gf_mulc_[src[7]]) | ((UINT64)__gf_mulc_[src[6]]<<8) | ((UINT64)__gf_mulc_[src[5]]<<16) |
389+
((UINT64)__gf_mulc_[src[4]]<<24) | ((UINT64)__gf_mulc_[src[3]]<<32) | ((UINT64)__gf_mulc_[src[2]]<<40) |
390+
((UINT64)__gf_mulc_[src[1]]<<48) | ((UINT64)__gf_mulc_[src[0]]<<56) ;
391+
#else // ! defined (OPENFEC_LITTLE_ENDIAN) || defined (OPENFEC_BIG_ENDIAN)
392+
#error "Unknown endianness"
393+
#endif
386394
*dst_64 ^= tmp;
387395
dst_64++;
388396

397+
#if defined (OPENFEC_LITTLE_ENDIAN)
389398
tmp = ((UINT64)__gf_mulc_[src[8]]) | ((UINT64)__gf_mulc_[src[9]]<<8) | ((UINT64)__gf_mulc_[src[10]]<<16) |
390399
((UINT64)__gf_mulc_[src[11]]<<24) | ((UINT64)__gf_mulc_[src[12]]<<32) | ((UINT64)__gf_mulc_[src[13]]<<40) |
391400
((UINT64)__gf_mulc_[src[14]]<<48) | ((UINT64)__gf_mulc_[src[15]]<<56) ;
401+
#elif defined (OPENFEC_BIG_ENDIAN)
402+
tmp = ((UINT64)__gf_mulc_[src[15]]) | ((UINT64)__gf_mulc_[src[14]]<<8) | ((UINT64)__gf_mulc_[src[13]]<<16) |
403+
((UINT64)__gf_mulc_[src[12]]<<24) | ((UINT64)__gf_mulc_[src[11]]<<32) | ((UINT64)__gf_mulc_[src[10]]<<40) |
404+
((UINT64)__gf_mulc_[src[9]]<<48) | ((UINT64)__gf_mulc_[src[8]]<<56) ;
405+
#else // ! defined (OPENFEC_LITTLE_ENDIAN) || defined (OPENFEC_BIG_ENDIAN)
406+
#error "Unknown endianness"
407+
#endif
392408
*dst_64 ^= tmp;
393409
dst_64++;
394410
}

src/lib_stable/reed-solomon_gf_2_m/galois_field_codes_utils/algebra_2_4.c

Lines changed: 88 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -87,32 +87,76 @@ void of_galois_field_2_4_addmul1(gf *dst1, gf *src1, gf c, int sz)
8787
{
8888
#if ((defined (__LP64__) || (__WORDSIZE == 64)) && !defined (OF_RS_2M_USE_32BITS))
8989
/* perform 64-bit operations for improved performances on 64-bit systems */
90+
#if defined (OPENFEC_LITTLE_ENDIAN)
9091
tmp = ((UINT64)__gf_mulc_[src[0]]) | ((UINT64)__gf_mulc_[src[1]]<<8) | ((UINT64)__gf_mulc_[src[2]]<<16) |
9192
((UINT64)__gf_mulc_[src[3]]<<24) | ((UINT64)__gf_mulc_[src[4]]<<32) | ((UINT64)__gf_mulc_[src[5]]<<40) |
9293
((UINT64)__gf_mulc_[src[6]]<<48) | ((UINT64)__gf_mulc_[src[7]]<<56) ;
94+
#elif defined (OPENFEC_BIG_ENDIAN)
95+
tmp = ((UINT64)__gf_mulc_[src[7]]) | ((UINT64)__gf_mulc_[src[6]]<<8) | ((UINT64)__gf_mulc_[src[5]]<<16) |
96+
((UINT64)__gf_mulc_[src[4]]<<24) | ((UINT64)__gf_mulc_[src[3]]<<32) | ((UINT64)__gf_mulc_[src[2]]<<40) |
97+
((UINT64)__gf_mulc_[src[1]]<<48) | ((UINT64)__gf_mulc_[src[0]]<<56) ;
98+
#else // ! defined (OPENFEC_LITTLE_ENDIAN) || defined (OPENFEC_BIG_ENDIAN)
99+
#error "Unknown endianness"
100+
#endif
93101
*dst_64 ^= tmp;
94102
dst_64++;
103+
#if defined (OPENFEC_LITTLE_ENDIAN)
95104
tmp = ((UINT64)__gf_mulc_[src[8]]) | ((UINT64)__gf_mulc_[src[9]]<<8) | ((UINT64)__gf_mulc_[src[10]]<<16) |
96105
((UINT64)__gf_mulc_[src[11]]<<24) | ((UINT64)__gf_mulc_[src[12]]<<32) | ((UINT64)__gf_mulc_[src[13]]<<40) |
97106
((UINT64)__gf_mulc_[src[14]]<<48) | ((UINT64)__gf_mulc_[src[15]]<<56) ;
107+
#elif defined (OPENFEC_BIG_ENDIAN)
108+
tmp = ((UINT64)__gf_mulc_[src[15]]) | ((UINT64)__gf_mulc_[src[14]]<<8) | ((UINT64)__gf_mulc_[src[13]]<<16) |
109+
((UINT64)__gf_mulc_[src[12]]<<24) | ((UINT64)__gf_mulc_[src[11]]<<32) | ((UINT64)__gf_mulc_[src[10]]<<40) |
110+
((UINT64)__gf_mulc_[src[9]]<<48) | ((UINT64)__gf_mulc_[src[8]]<<56) ;
111+
#else // ! defined (OPENFEC_LITTLE_ENDIAN) || defined (OPENFEC_BIG_ENDIAN)
112+
#error "Unknown endianness"
113+
#endif
98114
*dst_64 ^= tmp;
99115
dst_64++;
100116
#else
101117
/* otherwise perform 32-bit operations on 32-bit systems */
118+
#if defined (OPENFEC_LITTLE_ENDIAN)
102119
tmp = ((UINT32)__gf_mulc_[src[0]]) | ((UINT32)__gf_mulc_[src[1]]<<8) | ((UINT32)__gf_mulc_[src[2]]<<16) |
103120
((UINT32)__gf_mulc_[src[3]]<<24);
121+
#elif defined (OPENFEC_BIG_ENDIAN)
122+
tmp = ((UINT32)__gf_mulc_[src[3]]) | ((UINT32)__gf_mulc_[src[2]]<<8) | ((UINT32)__gf_mulc_[src[1]]<<16) |
123+
((UINT32)__gf_mulc_[src[0]]<<24);
124+
#else // ! defined (OPENFEC_LITTLE_ENDIAN) || defined (OPENFEC_BIG_ENDIAN)
125+
#error "Unknown endianness"
126+
#endif
104127
*dst_32 ^= tmp;
105128
dst_32++;
129+
#if defined (OPENFEC_LITTLE_ENDIAN)
106130
tmp = ((UINT32)__gf_mulc_[src[4]]) | ((UINT32)__gf_mulc_[src[5]]<<8) | ((UINT32)__gf_mulc_[src[6]]<<16) |
107131
((UINT32)__gf_mulc_[src[7]]<<24);
132+
#elif defined (OPENFEC_BIG_ENDIAN)
133+
tmp = ((UINT32)__gf_mulc_[src[7]]) | ((UINT32)__gf_mulc_[src[6]]<<8) | ((UINT32)__gf_mulc_[src[5]]<<16) |
134+
((UINT32)__gf_mulc_[src[4]]<<24);
135+
#else // ! defined (OPENFEC_LITTLE_ENDIAN) || defined (OPENFEC_BIG_ENDIAN)
136+
#error "Unknown endianness"
137+
#endif
108138
*dst_32 ^= tmp;
109139
dst_32++;
140+
#if defined (OPENFEC_LITTLE_ENDIAN)
110141
tmp = ((UINT32)__gf_mulc_[src[8]]) | ((UINT32)__gf_mulc_[src[9]]<<8) | ((UINT32)__gf_mulc_[src[10]]<<16) |
111142
((UINT32)__gf_mulc_[src[11]]<<24);
143+
#elif defined (OPENFEC_BIG_ENDIAN)
144+
tmp = ((UINT32)__gf_mulc_[src[11]]) | ((UINT32)__gf_mulc_[src[10]]<<8) | ((UINT32)__gf_mulc_[src[9]]<<16) |
145+
((UINT32)__gf_mulc_[src[8]]<<24);
146+
#else // ! defined (OPENFEC_LITTLE_ENDIAN) || defined (OPENFEC_BIG_ENDIAN)
147+
#error "Unknown endianness"
148+
#endif
112149
*dst_32 ^= tmp;
113150
dst_32++;
151+
#if defined (OPENFEC_LITTLE_ENDIAN)
114152
tmp = ((UINT32)__gf_mulc_[src[12]]) | ((UINT32)__gf_mulc_[src[13]]<<8) | ((UINT32)__gf_mulc_[src[14]]<<16) |
115153
((UINT32)__gf_mulc_[src[15]]<<24);
154+
#elif defined (OPENFEC_BIG_ENDIAN)
155+
tmp = ((UINT32)__gf_mulc_[src[15]]) | ((UINT32)__gf_mulc_[src[14]]<<8) | ((UINT32)__gf_mulc_[src[13]]<<16) |
156+
((UINT32)__gf_mulc_[src[12]]<<24);
157+
#else // ! defined (OPENFEC_LITTLE_ENDIAN) || defined (OPENFEC_BIG_ENDIAN)
158+
#error "Unknown endianness"
159+
#endif
116160
*dst_32 ^= tmp;
117161
dst_32++;
118162
#endif
@@ -155,32 +199,76 @@ void of_galois_field_2_4_addmul1_compact (gf *dst1, gf *src1, gf c, int
155199
{
156200
#if ((defined (__LP64__) || (__WORDSIZE == 64)) && !defined (OF_RS_2M_USE_32BITS))
157201
/* perform 64-bit operations for improved performances on 64-bit systems */
202+
#if defined (OPENFEC_LITTLE_ENDIAN)
158203
tmp = ((UINT64)__gf_mulc_[src[0]]) | ((UINT64)__gf_mulc_[src[1]]<<8) | ((UINT64)__gf_mulc_[src[2]]<<16) |
159204
((UINT64)__gf_mulc_[src[3]]<<24) | ((UINT64)__gf_mulc_[src[4]]<<32) | ((UINT64)__gf_mulc_[src[5]]<<40) |
160205
((UINT64)__gf_mulc_[src[6]]<<48) | ((UINT64)__gf_mulc_[src[7]]<<56) ;
206+
#elif defined (OPENFEC_BIG_ENDIAN)
207+
tmp = ((UINT64)__gf_mulc_[src[7]]) | ((UINT64)__gf_mulc_[src[6]]<<8) | ((UINT64)__gf_mulc_[src[5]]<<16) |
208+
((UINT64)__gf_mulc_[src[4]]<<24) | ((UINT64)__gf_mulc_[src[3]]<<32) | ((UINT64)__gf_mulc_[src[2]]<<40) |
209+
((UINT64)__gf_mulc_[src[1]]<<48) | ((UINT64)__gf_mulc_[src[0]]<<56) ;
210+
#else // ! defined (OPENFEC_LITTLE_ENDIAN) || defined (OPENFEC_BIG_ENDIAN)
211+
#error "Unknown endianness"
212+
#endif
161213
*dst_64 ^= tmp;
162214
dst_64++;
215+
#if defined (OPENFEC_LITTLE_ENDIAN)
163216
tmp = ((UINT64)__gf_mulc_[src[8]]) | ((UINT64)__gf_mulc_[src[9]]<<8) | ((UINT64)__gf_mulc_[src[10]]<<16) |
164217
((UINT64)__gf_mulc_[src[11]]<<24) | ((UINT64)__gf_mulc_[src[12]]<<32) | ((UINT64)__gf_mulc_[src[13]]<<40) |
165218
((UINT64)__gf_mulc_[src[14]]<<48) | ((UINT64)__gf_mulc_[src[15]]<<56) ;
219+
#elif defined (OPENFEC_BIG_ENDIAN)
220+
tmp = ((UINT64)__gf_mulc_[src[15]]) | ((UINT64)__gf_mulc_[src[14]]<<8) | ((UINT64)__gf_mulc_[src[13]]<<16) |
221+
((UINT64)__gf_mulc_[src[12]]<<24) | ((UINT64)__gf_mulc_[src[11]]<<32) | ((UINT64)__gf_mulc_[src[10]]<<40) |
222+
((UINT64)__gf_mulc_[src[9]]<<48) | ((UINT64)__gf_mulc_[src[8]]<<56) ;
223+
#else // ! defined (OPENFEC_LITTLE_ENDIAN) || defined (OPENFEC_BIG_ENDIAN)
224+
#error "Unknown endianness"
225+
#endif
166226
*dst_64 ^= tmp;
167227
dst_64++;
168228
#else
169229
/* otherwise perform 32-bit operations on 32-bit systems */
230+
#if defined (OPENFEC_LITTLE_ENDIAN)
170231
tmp = ((UINT32)__gf_mulc_[src[0]]) | ((UINT32)__gf_mulc_[src[1]]<<8) | ((UINT32)__gf_mulc_[src[2]]<<16) |
171232
((UINT32)__gf_mulc_[src[3]]<<24);
233+
#elif defined (OPENFEC_BIG_ENDIAN)
234+
tmp = ((UINT32)__gf_mulc_[src[3]]) | ((UINT32)__gf_mulc_[src[2]]<<8) | ((UINT32)__gf_mulc_[src[1]]<<16) |
235+
((UINT32)__gf_mulc_[src[0]]<<24);
236+
#else // ! defined (OPENFEC_LITTLE_ENDIAN) || defined (OPENFEC_BIG_ENDIAN)
237+
#error "Unknown endianness"
238+
#endif
172239
*dst_32 ^= tmp;
173240
dst_32++;
241+
#if defined (OPENFEC_LITTLE_ENDIAN)
174242
tmp = ((UINT32)__gf_mulc_[src[4]]) | ((UINT32)__gf_mulc_[src[5]]<<8) | ((UINT32)__gf_mulc_[src[6]]<<16) |
175243
((UINT32)__gf_mulc_[src[7]]<<24);
244+
#elif defined (OPENFEC_BIG_ENDIAN)
245+
tmp = ((UINT32)__gf_mulc_[src[7]]) | ((UINT32)__gf_mulc_[src[6]]<<8) | ((UINT32)__gf_mulc_[src[5]]<<16) |
246+
((UINT32)__gf_mulc_[src[4]]<<24);
247+
#else // ! defined (OPENFEC_LITTLE_ENDIAN) || defined (OPENFEC_BIG_ENDIAN)
248+
#error "Unknown endianness"
249+
#endif
176250
*dst_32 ^= tmp;
177251
dst_32++;
252+
#if defined (OPENFEC_LITTLE_ENDIAN)
178253
tmp = ((UINT32)__gf_mulc_[src[8]]) | ((UINT32)__gf_mulc_[src[9]]<<8) | ((UINT32)__gf_mulc_[src[10]]<<16) |
179254
((UINT32)__gf_mulc_[src[11]]<<24);
255+
#elif defined (OPENFEC_BIG_ENDIAN)
256+
tmp = ((UINT32)__gf_mulc_[src[11]]) | ((UINT32)__gf_mulc_[src[10]]<<8) | ((UINT32)__gf_mulc_[src[9]]<<16) |
257+
((UINT32)__gf_mulc_[src[8]]<<24);
258+
#else // ! defined (OPENFEC_LITTLE_ENDIAN) || defined (OPENFEC_BIG_ENDIAN)
259+
#error "Unknown endianness"
260+
#endif
180261
*dst_32 ^= tmp;
181262
dst_32++;
263+
#if defined (OPENFEC_LITTLE_ENDIAN)
182264
tmp = ((UINT32)__gf_mulc_[src[12]]) | ((UINT32)__gf_mulc_[src[13]]<<8) | ((UINT32)__gf_mulc_[src[14]]<<16) |
183265
((UINT32)__gf_mulc_[src[15]]<<24);
266+
#elif defined (OPENFEC_BIG_ENDIAN)
267+
tmp = ((UINT32)__gf_mulc_[src[15]]) | ((UINT32)__gf_mulc_[src[14]]<<8) | ((UINT32)__gf_mulc_[src[13]]<<16) |
268+
((UINT32)__gf_mulc_[src[12]]<<24);
269+
#else // ! defined (OPENFEC_LITTLE_ENDIAN) || defined (OPENFEC_BIG_ENDIAN)
270+
#error "Unknown endianness"
271+
#endif
184272
*dst_32 ^= tmp;
185273
dst_32++;
186274
#endif

src/lib_stable/reed-solomon_gf_2_m/galois_field_codes_utils/algebra_2_8.c

Lines changed: 44 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -79,31 +79,75 @@ void of_galois_field_2_8_addmul1(gf *dst1, gf *src1, gf c, int sz) {
7979
for (; dst < lim ;dst += UNROLL, src += UNROLL)
8080
{
8181
#if ((defined (__LP64__) || (__WORDSIZE == 64)) && !defined (OF_RS_2M_USE_32BITS))
82+
#if defined (OPENFEC_LITTLE_ENDIAN)
8283
tmp = ((UINT64)__gf_mulc_[src[0]]) | ((UINT64)__gf_mulc_[src[1]]<<8) | ((UINT64)__gf_mulc_[src[2]]<<16) |
8384
((UINT64)__gf_mulc_[src[3]]<<24) | ((UINT64)__gf_mulc_[src[4]]<<32) | ((UINT64)__gf_mulc_[src[5]]<<40) |
8485
((UINT64)__gf_mulc_[src[6]]<<48) | ((UINT64)__gf_mulc_[src[7]]<<56) ;
86+
#elif defined (OPENFEC_BIG_ENDIAN)
87+
tmp = ((UINT64)__gf_mulc_[src[7]]) | ((UINT64)__gf_mulc_[src[6]]<<8) | ((UINT64)__gf_mulc_[src[5]]<<16) |
88+
((UINT64)__gf_mulc_[src[4]]<<24) | ((UINT64)__gf_mulc_[src[3]]<<32) | ((UINT64)__gf_mulc_[src[2]]<<40) |
89+
((UINT64)__gf_mulc_[src[1]]<<48) | ((UINT64)__gf_mulc_[src[0]]<<56) ;
90+
#else // ! defined (OPENFEC_LITTLE_ENDIAN) || defined (OPENFEC_BIG_ENDIAN)
91+
#error "Unknown endianness"
92+
#endif
8593
*dst_64 ^= tmp;
8694
dst_64++;
95+
#if defined (OPENFEC_LITTLE_ENDIAN)
8796
tmp = ((UINT64)__gf_mulc_[src[8]]) | ((UINT64)__gf_mulc_[src[9]]<<8) | ((UINT64)__gf_mulc_[src[10]]<<16) |
8897
((UINT64)__gf_mulc_[src[11]]<<24) | ((UINT64)__gf_mulc_[src[12]]<<32) | ((UINT64)__gf_mulc_[src[13]]<<40) |
8998
((UINT64)__gf_mulc_[src[14]]<<48) | ((UINT64)__gf_mulc_[src[15]]<<56) ;
99+
#elif defined (OPENFEC_BIG_ENDIAN)
100+
tmp = ((UINT64)__gf_mulc_[src[15]]) | ((UINT64)__gf_mulc_[src[14]]<<8) | ((UINT64)__gf_mulc_[src[13]]<<16) |
101+
((UINT64)__gf_mulc_[src[12]]<<24) | ((UINT64)__gf_mulc_[src[11]]<<32) | ((UINT64)__gf_mulc_[src[10]]<<40) |
102+
((UINT64)__gf_mulc_[src[9]]<<48) | ((UINT64)__gf_mulc_[src[8]]<<56) ;
103+
#else // ! defined (OPENFEC_LITTLE_ENDIAN) || defined (OPENFEC_BIG_ENDIAN)
104+
#error "Unknown endianness"
105+
#endif
90106
*dst_64 ^= tmp;
91107
dst_64++;
92108
#else
109+
#if defined (OPENFEC_LITTLE_ENDIAN)
93110
tmp = ((UINT32)__gf_mulc_[src[0]]) | ((UINT32)__gf_mulc_[src[1]]<<8) | ((UINT32)__gf_mulc_[src[2]]<<16) |
94111
((UINT32)__gf_mulc_[src[3]]<<24);
112+
#elif defined (OPENFEC_BIG_ENDIAN)
113+
tmp = ((UINT32)__gf_mulc_[src[3]]) | ((UINT32)__gf_mulc_[src[2]]<<8) | ((UINT32)__gf_mulc_[src[1]]<<16) |
114+
((UINT32)__gf_mulc_[src[0]]<<24);
115+
#else // ! defined (OPENFEC_LITTLE_ENDIAN) || defined (OPENFEC_BIG_ENDIAN)
116+
#error "Unknown endianness"
117+
#endif
95118
*dst_32 ^= tmp;
96119
dst_32++;
120+
#if defined (OPENFEC_LITTLE_ENDIAN)
97121
tmp = ((UINT32)__gf_mulc_[src[4]]) | ((UINT32)__gf_mulc_[src[5]]<<8) | ((UINT32)__gf_mulc_[src[6]]<<16) |
98122
((UINT32)__gf_mulc_[src[7]]<<24);
123+
#elif defined (OPENFEC_BIG_ENDIAN)
124+
tmp = ((UINT32)__gf_mulc_[src[7]]) | ((UINT32)__gf_mulc_[src[6]]<<8) | ((UINT32)__gf_mulc_[src[5]]<<16) |
125+
((UINT32)__gf_mulc_[src[4]]<<24);
126+
#else // ! defined (OPENFEC_LITTLE_ENDIAN) || defined (OPENFEC_BIG_ENDIAN)
127+
#error "Unknown endianness"
128+
#endif
99129
*dst_32 ^= tmp;
100130
dst_32++;
131+
#if defined (OPENFEC_LITTLE_ENDIAN)
101132
tmp = ((UINT32)__gf_mulc_[src[8]]) | ((UINT32)__gf_mulc_[src[9]]<<8) | ((UINT32)__gf_mulc_[src[10]]<<16) |
102133
((UINT32)__gf_mulc_[src[11]]<<24);
134+
#elif defined (OPENFEC_BIG_ENDIAN)
135+
tmp = ((UINT32)__gf_mulc_[src[11]]) | ((UINT32)__gf_mulc_[src[10]]<<8) | ((UINT32)__gf_mulc_[src[9]]<<16) |
136+
((UINT32)__gf_mulc_[src[8]]<<24);
137+
#else // ! defined (OPENFEC_LITTLE_ENDIAN) || defined (OPENFEC_BIG_ENDIAN)
138+
#error "Unknown endianness"
139+
#endif
103140
*dst_32 ^= tmp;
104141
dst_32++;
142+
#if defined (OPENFEC_LITTLE_ENDIAN)
105143
tmp = ((UINT32)__gf_mulc_[src[12]]) | ((UINT32)__gf_mulc_[src[13]]<<8) | ((UINT32)__gf_mulc_[src[14]]<<16) |
106144
((UINT32)__gf_mulc_[src[15]]<<24);
145+
#elif defined (OPENFEC_BIG_ENDIAN)
146+
tmp = ((UINT32)__gf_mulc_[src[15]]) | ((UINT32)__gf_mulc_[src[14]]<<8) | ((UINT32)__gf_mulc_[src[13]]<<16) |
147+
((UINT32)__gf_mulc_[src[12]]<<24);
148+
#else // ! defined (OPENFEC_LITTLE_ENDIAN) || defined (OPENFEC_BIG_ENDIAN)
149+
#error "Unknown endianness"
150+
#endif
107151
*dst_32 ^= tmp;
108152
dst_32++;
109153
#endif

0 commit comments

Comments
 (0)