1 #!/bin/bash
   2 
   3 javac -d . ../../../../../../../make/jdk/src/classes/build/tools/spp/Spp.java
   4 
   5 SPP=build.tools.spp.Spp
   6 
   7 typeprefix=
   8 
   9 for type in byte short int long float double
  10 do
  11   Type="$(tr '[:lower:]' '[:upper:]' <<< ${type:0:1})${type:1}"
  12   TYPE="$(tr '[:lower:]' '[:upper:]' <<< ${type})"
  13   args="-K$type -Dtype=$type -DType=$Type -DTYPE=$TYPE"
  14 
  15   Boxtype=$Type
  16   Wideboxtype=$Boxtype
  17 
  18   kind=BITWISE
  19 
  20   bitstype=$type
  21   Bitstype=$Type
  22   Boxbitstype=$Boxtype
  23 
  24   fptype=$type
  25   Fptype=$Type
  26   Boxfptype=$Boxtype
  27 
  28   case $type in
  29     byte)
  30       Wideboxtype=Integer
  31       sizeInBytes=1
  32       args="$args -KbyteOrShort"
  33       ;;
  34     short)
  35       Wideboxtype=Integer
  36       sizeInBytes=2
  37       args="$args -KbyteOrShort"
  38       ;;
  39     int)
  40       Boxtype=Integer
  41       Wideboxtype=Integer
  42       fptype=float
  43       Fptype=Float
  44       Boxfptype=Float
  45       sizeInBytes=4
  46       args="$args -KintOrLong -KintOrFP -KintOrFloat"
  47       ;;
  48     long)
  49       fptype=double
  50       Fptype=Double
  51       Boxfptype=Double
  52       sizeInBytes=8
  53       args="$args -KintOrLong -KlongOrDouble"
  54       ;;
  55     float)
  56       kind=FP
  57       bitstype=int
  58       Bitstype=Int
  59       Boxbitstype=Integer
  60       sizeInBytes=4
  61       args="$args -KintOrFP -KintOrFloat"
  62       ;;
  63     double)
  64       kind=FP
  65       bitstype=long
  66       Bitstype=Long
  67       Boxbitstype=Long
  68       sizeInBytes=8
  69       args="$args -KintOrFP -KlongOrDouble"
  70       ;;
  71   esac
  72 
  73   args="$args -K$kind -DBoxtype=$Boxtype -DWideboxtype=$Wideboxtype"
  74   args="$args -Dbitstype=$bitstype -DBitstype=$Bitstype -DBoxbitstype=$Boxbitstype"
  75   args="$args -Dfptype=$fptype -DFptype=$Fptype -DBoxfptype=$Boxfptype"
  76 
  77   abstractvectortype=${typeprefix}${Type}Vector
  78   abstractbitsvectortype=${typeprefix}${Bitstype}Vector
  79   abstractfpvectortype=${typeprefix}${Fptype}Vector
  80   args="$args -Dabstractvectortype=$abstractvectortype -Dabstractbitsvectortype=$abstractbitsvectortype -Dabstractfpvectortype=$abstractfpvectortype"
  81   echo $args
  82   rm -f $abstractvectortype.java
  83   java $SPP -nel $args \
  84      -iX-Vector.java.template \
  85      -o$abstractvectortype.java
  86 
  87   if [ VAR_OS_ENV==windows.cygwin ]; then
  88     tr -d '\r' < $abstractvectortype.java > temp
  89     mv temp $abstractvectortype.java
  90   fi
  91 
  92   rm -f ${abstractvectortype}Helper.java
  93   java $SPP -nel $args \
  94      -iX-VectorHelper.java.template \
  95      -o${abstractvectortype}Helper.java
  96 
  97   if [[ "x${VAR_OS_ENV}" == "xwindows.cygwin" ]]; then
  98     tr -d '\r' < ${abstractvectortype}Helper.java > temp
  99     mv temp ${abstractvectortype}Helper.java
 100   fi
 101 
 102   old_args="$args"
 103   for bits in 64 128 256 512 Max
 104   do
 105     vectortype=${typeprefix}${Type}${bits}Vector
 106     masktype=${typeprefix}${Type}${bits}Mask
 107     shuffletype=${typeprefix}${Type}${bits}Shuffle
 108     bitsvectortype=${typeprefix}${Bitstype}${bits}Vector
 109     fpvectortype=${typeprefix}${Fptype}${bits}Vector
 110     vectorindexbits=$((bits * 4 / sizeInBytes))
 111     if [[ "${bits}" == "Max" ]]; then
 112         vectorindextype="vix.getClass()"
 113     else
 114         vectorindextype="Int${vectorindexbits}Vector.class"
 115     fi;
 116 
 117     shape=S${bits}Bit
 118     Shape=S_${bits}_BIT
 119     args="$old_args"
 120     if [[ "${vectortype}" == "Long64Vector" || "${vectortype}" == "Double64Vector" ]]; then
 121       args="$args -KlongOrDouble64"
 122     fi
 123     bitargs="$args -Dbits=$bits -Dvectortype=$vectortype -Dmasktype=$masktype -Dshuffletype=$shuffletype -Dbitsvectortype=$bitsvectortype -Dfpvectortype=$fpvectortype -Dvectorindextype=$vectorindextype -Dshape=$shape -DShape=$Shape"
 124 
 125     echo $bitargs
 126     rm -f $vectortype.java
 127     java $SPP -nel $bitargs \
 128        -iX-VectorBits.java.template \
 129        -o$vectortype.java
 130 
 131     if [[ "x${VAR_OS_ENV}" == "xwindows.cygwin" ]]; then
 132       tr -d  '\r' < $vectortype.java > temp
 133       mv temp $vectortype.java
 134     fi
 135   done
 136 
 137 done
 138 
 139 rm -fr build
 140