Line 0
Link Here
|
|
|
1 |
--- encode_rs_av.c.orig 2019-02-05 19:29:53 UTC |
2 |
+++ encode_rs_av.c |
3 |
@@ -2,6 +2,7 @@ |
4 |
* Copyright 2004, Phil Karn KA9Q |
5 |
* May be used under the terms of the GNU Lesser General Public License (LGPL) |
6 |
*/ |
7 |
+#include <altivec.h> |
8 |
#include <stdio.h> |
9 |
#include <string.h> |
10 |
#include "fixed.h" |
11 |
@@ -12,8 +13,8 @@ |
12 |
*/ |
13 |
static union { vector unsigned char v; unsigned char c[16]; } table[256]; |
14 |
|
15 |
-static vector unsigned char reverse = (vector unsigned char)(0,15,14,13,12,11,10,9,8,7,6,5,4,3,2,1); |
16 |
-static vector unsigned char shift_right = (vector unsigned char)(15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30); |
17 |
+static vector unsigned char reverse = (vector unsigned char){0,15,14,13,12,11,10,9,8,7,6,5,4,3,2,1}; |
18 |
+static vector unsigned char shift_right = (vector unsigned char){15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30}; |
19 |
|
20 |
extern data_t CCSDS_alpha_to[]; |
21 |
extern data_t CCSDS_index_of[]; |
22 |
@@ -40,8 +41,8 @@ void encode_rs_av(unsigned char *data,unsigned char *p |
23 |
union { vector unsigned char v[2]; unsigned char c[32]; } shift_register; |
24 |
int i; |
25 |
|
26 |
- shift_register.v[0] = (vector unsigned char)(0); |
27 |
- shift_register.v[1] = (vector unsigned char)(0); |
28 |
+ shift_register.v[0] = (vector unsigned char){0}; |
29 |
+ shift_register.v[1] = (vector unsigned char){0}; |
30 |
|
31 |
for(i=0;i<NN-NROOTS-pad;i++){ |
32 |
vector unsigned char feedback0,feedback1; |
33 |
@@ -53,7 +54,7 @@ void encode_rs_av(unsigned char *data,unsigned char *p |
34 |
|
35 |
/* Shift right one byte */ |
36 |
shift_register.v[1] = vec_perm(shift_register.v[0],shift_register.v[1],shift_right) ^ feedback1; |
37 |
- shift_register.v[0] = vec_sro(shift_register.v[0],(vector unsigned char)(8)) ^ feedback0; |
38 |
+ shift_register.v[0] = vec_sro(shift_register.v[0],(vector unsigned char){8}) ^ feedback0; |
39 |
shift_register.c[0] = f; |
40 |
} |
41 |
for(i=0;i<NROOTS;i++) |