@@ -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
0 commit comments