This source file includes following definitions.
- validate_vsx
- validate_vmx
- compare_vsx_vmx
- load_vsx_vmx
   1 
   2 
   3 
   4 
   5 #define VEC_MAX 128
   6 #define VSX_MAX 32
   7 #define VMX_MAX 32
   8 
   9 
  10 
  11 
  12 
  13 int validate_vsx(unsigned long *vsx, unsigned long *load)
  14 {
  15         int i;
  16 
  17         for (i = 0; i < VSX_MAX; i++) {
  18                 if (vsx[i] != load[2 * i + 1]) {
  19                         printf("vsx[%d]: %lx load[%d] %lx\n",
  20                                         i, vsx[i], 2 * i + 1, load[2 * i + 1]);
  21                         return TEST_FAIL;
  22                 }
  23         }
  24         return TEST_PASS;
  25 }
  26 
  27 
  28 
  29 
  30 
  31 int validate_vmx(unsigned long vmx[][2], unsigned long *load)
  32 {
  33         int i;
  34 
  35         for (i = 0; i < VMX_MAX; i++) {
  36                 #if __BYTE_ORDER__ == __ORDER_BIG_ENDIAN__
  37                 if ((vmx[i][0] != load[64 + 2 * i]) ||
  38                                 (vmx[i][1] != load[65 + 2 * i])) {
  39                         printf("vmx[%d][0]: %lx load[%d] %lx\n",
  40                                         i, vmx[i][0], 64 + 2 * i,
  41                                         load[64 + 2 * i]);
  42                         printf("vmx[%d][1]: %lx load[%d] %lx\n",
  43                                         i, vmx[i][1], 65 + 2 * i,
  44                                         load[65 + 2 * i]);
  45                         return TEST_FAIL;
  46                 }
  47                 #else  
  48 
  49 
  50 
  51                 if ((vmx[i][0] != load[65 + 2 * i]) ||
  52                                 (vmx[i][1] != load[64 + 2 * i])) {
  53                         printf("vmx[%d][0]: %lx load[%d] %lx\n",
  54                                         i, vmx[i][0], 65 + 2 * i,
  55                                         load[65 + 2 * i]);
  56                         printf("vmx[%d][1]: %lx load[%d] %lx\n",
  57                                         i, vmx[i][1], 64 + 2 * i,
  58                                         load[64 + 2 * i]);
  59                         return TEST_FAIL;
  60                 }
  61                 #endif
  62         }
  63         return TEST_PASS;
  64 }
  65 
  66 
  67 
  68 
  69 
  70 int compare_vsx_vmx(unsigned long *store, unsigned long *load)
  71 {
  72         int i;
  73 
  74         for (i = 0; i < VSX_MAX; i++) {
  75                 if (store[1 + 2 * i] != load[1 + 2 * i]) {
  76                         printf("store[%d]: %lx load[%d] %lx\n",
  77                                         1 + 2 * i, store[i],
  78                                         1 + 2 * i, load[i]);
  79                         return TEST_FAIL;
  80                 }
  81         }
  82 
  83         #if __BYTE_ORDER__ == __ORDER_BIG_ENDIAN__
  84         for (i = 64; i < VEC_MAX; i++) {
  85                 if (store[i] != load[i]) {
  86                         printf("store[%d]: %lx load[%d] %lx\n",
  87                                         i, store[i], i, load[i]);
  88                         return TEST_FAIL;
  89                 }
  90         }
  91         #else   
  92         for (i = 64; i < VEC_MAX; i++) {
  93                 if (!(i % 2) && (store[i] != load[i+1])) {
  94                         printf("store[%d]: %lx load[%d] %lx\n",
  95                                         i, store[i], i+1, load[i+1]);
  96                         return TEST_FAIL;
  97                 }
  98                 if ((i % 2) && (store[i] != load[i-1])) {
  99                         printf("here store[%d]: %lx load[%d] %lx\n",
 100                                         i, store[i], i-1, load[i-1]);
 101                         return TEST_FAIL;
 102                 }
 103         }
 104         #endif
 105         return TEST_PASS;
 106 }
 107 
 108 void load_vsx_vmx(unsigned long *load, unsigned long *vsx,
 109                 unsigned long vmx[][2])
 110 {
 111         int i;
 112 
 113         for (i = 0; i < VSX_MAX; i++)
 114                 vsx[i] = load[1 + 2 * i];
 115 
 116         for (i = 0; i < VMX_MAX; i++) {
 117                 vmx[i][0] = load[64 + 2 * i];
 118                 vmx[i][1] = load[65 + 2 * i];
 119         }
 120 }
 121 
 122 void loadvsx(void *p, int tmp);
 123 void storevsx(void *p, int tmp);