static void select(ge_precomp t,int pos,byte b) { ge_precomp base[][] = (pos <= 7 ? ge_precomp_base_0_7.base : (pos <= 15 ? ge_precomp_base_8_15.base : (pos <= 23 ? ge_precomp_base_16_23.base : ge_precomp_base_24_31.base))); ge_precomp minust = new ge_precomp(); int bnegative = negative(b); int babs = b - (((-bnegative) & b) << 1); ge_precomp_0.ge_precomp_0(t); cmov(t,base[pos][0],equal((byte)babs,(byte)1)); cmov(t,base[pos][1],equal((byte)babs,(byte)2)); cmov(t,base[pos][2],equal((byte)babs,(byte)3)); cmov(t,base[pos][3],equal((byte)babs,(byte)4)); cmov(t,base[pos][4],equal((byte)babs,(byte)5)); cmov(t,base[pos][5],equal((byte)babs,(byte)6)); cmov(t,base[pos][6],equal((byte)babs,(byte)7)); cmov(t,base[pos][7],equal((byte)babs,(byte)8)); fe_copy.fe_copy(minust.yplusx,t.yminusx); fe_copy.fe_copy(minust.yminusx,t.yplusx); fe_neg.fe_neg(minust.xy2d,t.xy2d); cmov(t,minust,bnegative); }