< prev index next >

src/java.desktop/share/native/libmlib_image/mlib_c_ImageAffine_BL_U16.c

Print this page
rev 59106 : imported patch client

@@ -75,228 +75,11 @@
 #define ROUND(x) (x)
 
 #define FUN_NAME(CHAN) mlib_ImageAffine_u16_##CHAN##_bl
 
 /***************************************************************/
-#ifdef __sparc /* for SPARC, using floating-point multiplies is faster */
-
-/***************************************************************/
-#define GET_POINTERS(ind)                                       \
-  fdx = (FTYPE)(X & MLIB_MASK) * scale;                         \
-  fdy = (FTYPE)(Y & MLIB_MASK) * scale;                         \
-  ySrc = MLIB_POINTER_SHIFT(Y);  Y += dY;                       \
-  xSrc = X >> MLIB_SHIFT;  X += dX;                             \
-  srcPixelPtr = MLIB_POINTER_GET(lineAddr, ySrc) + ind * xSrc;  \
-  srcPixelPtr2 = (DTYPE *)((mlib_u8 *)srcPixelPtr + srcYStride)
-
-/***************************************************************/
-#define COUNT(ind)                                              \
-  pix0_##ind = a00_##ind + fdy * (a10_##ind - a00_##ind);       \
-  pix1_##ind = a01_##ind + fdy * (a11_##ind - a01_##ind);       \
-  res##ind = ROUND(pix0_##ind + fdx * (pix1_##ind - pix0_##ind))
-
-/***************************************************************/
-#define LOAD(ind, ind1, ind2)                                   \
-  a00_##ind = I2F(srcPixelPtr[ind1]);                           \
-  a01_##ind = I2F(srcPixelPtr[ind2]);                           \
-  a10_##ind = I2F(srcPixelPtr2[ind1]);                          \
-  a11_##ind = I2F(srcPixelPtr2[ind2])
-
-/***************************************************************/
-mlib_status FUN_NAME(1ch)(mlib_affine_param *param)
-{
-  DECLAREVAR_BL();
-  DTYPE *dstLineEnd;
-  DTYPE *srcPixelPtr2;
-  FTYPE scale = (FTYPE) 1.0 / MLIB_PREC;
-
-  for (j = yStart; j <= yFinish; j++) {
-    FTYPE fdx, fdy;
-    TTYPE a00_0, a01_0, a10_0, a11_0;
-    FTYPE pix0_0, pix1_0, res0;
-
-    CLIP(1);
-    dstLineEnd = (DTYPE *) dstData + xRight;
-
-    GET_POINTERS(1);
-    LOAD(0, 0, 1);
-
-#ifdef __SUNPRO_C
-#pragma pipeloop(0)
-#endif /* __SUNPRO_C */
-    for (; dstPixelPtr < dstLineEnd; dstPixelPtr++) {
-      COUNT(0);
-      GET_POINTERS(1);
-      LOAD(0, 0, 1);
-      dstPixelPtr[0] = (DTYPE) res0;
-    }
-
-    COUNT(0);
-    dstPixelPtr[0] = (DTYPE) res0;
-  }
-
-  return MLIB_SUCCESS;
-}
-
-/***************************************************************/
-mlib_status FUN_NAME(2ch)(mlib_affine_param *param)
-{
-  DECLAREVAR_BL();
-  DTYPE *dstLineEnd;
-  DTYPE *srcPixelPtr2;
-  FTYPE scale = (FTYPE) 1.0 / MLIB_PREC;
-
-  for (j = yStart; j <= yFinish; j++) {
-    FTYPE fdx, fdy;
-    TTYPE a00_0, a01_0, a10_0, a11_0;
-    TTYPE a00_1, a01_1, a10_1, a11_1;
-    FTYPE pix0_0, pix1_0, res0;
-    FTYPE pix0_1, pix1_1, res1;
-
-    CLIP(2);
-    dstLineEnd = (DTYPE *) dstData + 2 * xRight;
-
-    GET_POINTERS(2);
-    LOAD(0, 0, 2);
-    LOAD(1, 1, 3);
-
-#ifdef __SUNPRO_C
-#pragma pipeloop(0)
-#endif /* __SUNPRO_C */
-    for (; dstPixelPtr < dstLineEnd; dstPixelPtr += 2) {
-      COUNT(0);
-      COUNT(1);
-      GET_POINTERS(2);
-      LOAD(0, 0, 2);
-      LOAD(1, 1, 3);
-      dstPixelPtr[0] = (DTYPE) res0;
-      dstPixelPtr[1] = (DTYPE) res1;
-    }
-
-    COUNT(0);
-    COUNT(1);
-    dstPixelPtr[0] = (DTYPE) res0;
-    dstPixelPtr[1] = (DTYPE) res1;
-  }
-
-  return MLIB_SUCCESS;
-}
-
-/***************************************************************/
-mlib_status FUN_NAME(3ch)(mlib_affine_param *param)
-{
-  DECLAREVAR_BL();
-  DTYPE *dstLineEnd;
-  DTYPE *srcPixelPtr2;
-  FTYPE scale = (FTYPE) 1.0 / MLIB_PREC;
-
-  for (j = yStart; j <= yFinish; j++) {
-    FTYPE fdx, fdy;
-    FTYPE a00_0, a01_0, a10_0, a11_0;
-    FTYPE a00_1, a01_1, a10_1, a11_1;
-    FTYPE a00_2, a01_2, a10_2, a11_2;
-    FTYPE pix0_0, pix1_0, res0;
-    FTYPE pix0_1, pix1_1, res1;
-    FTYPE pix0_2, pix1_2, res2;
-
-    CLIP(3);
-    dstLineEnd = (DTYPE *) dstData + 3 * xRight;
-
-    GET_POINTERS(3);
-    LOAD(0, 0, 3);
-    LOAD(1, 1, 4);
-    LOAD(2, 2, 5);
-
-#ifdef __SUNPRO_C
-#pragma pipeloop(0)
-#endif /* __SUNPRO_C */
-    for (; dstPixelPtr < dstLineEnd; dstPixelPtr += 3) {
-      COUNT(0);
-      COUNT(1);
-      COUNT(2);
-      GET_POINTERS(3);
-      LOAD(0, 0, 3);
-      LOAD(1, 1, 4);
-      LOAD(2, 2, 5);
-      dstPixelPtr[0] = (DTYPE) res0;
-      dstPixelPtr[1] = (DTYPE) res1;
-      dstPixelPtr[2] = (DTYPE) res2;
-    }
-
-    COUNT(0);
-    COUNT(1);
-    COUNT(2);
-    dstPixelPtr[0] = (DTYPE) res0;
-    dstPixelPtr[1] = (DTYPE) res1;
-    dstPixelPtr[2] = (DTYPE) res2;
-  }
-
-  return MLIB_SUCCESS;
-}
-
-/***************************************************************/
-mlib_status FUN_NAME(4ch)(mlib_affine_param *param)
-{
-  DECLAREVAR_BL();
-  DTYPE *dstLineEnd;
-  DTYPE *srcPixelPtr2;
-  FTYPE scale = (FTYPE) 1.0 / MLIB_PREC;
-
-  for (j = yStart; j <= yFinish; j++) {
-    FTYPE fdx, fdy;
-    TTYPE a00_0, a01_0, a10_0, a11_0;
-    TTYPE a00_1, a01_1, a10_1, a11_1;
-    TTYPE a00_2, a01_2, a10_2, a11_2;
-    TTYPE a00_3, a01_3, a10_3, a11_3;
-    FTYPE pix0_0, pix1_0, res0;
-    FTYPE pix0_1, pix1_1, res1;
-    FTYPE pix0_2, pix1_2, res2;
-    FTYPE pix0_3, pix1_3, res3;
-
-    CLIP(4);
-    dstLineEnd = (DTYPE *) dstData + 4 * xRight;
-
-    GET_POINTERS(4);
-    LOAD(0, 0, 4);
-    LOAD(1, 1, 5);
-    LOAD(2, 2, 6);
-    LOAD(3, 3, 7);
-
-#ifdef __SUNPRO_C
-#pragma pipeloop(0)
-#endif /* __SUNPRO_C */
-    for (; dstPixelPtr < dstLineEnd; dstPixelPtr += 4) {
-      COUNT(0);
-      COUNT(1);
-      COUNT(2);
-      COUNT(3);
-      GET_POINTERS(4);
-      LOAD(0, 0, 4);
-      LOAD(1, 1, 5);
-      LOAD(2, 2, 6);
-      LOAD(3, 3, 7);
-      dstPixelPtr[0] = (DTYPE) res0;
-      dstPixelPtr[1] = (DTYPE) res1;
-      dstPixelPtr[2] = (DTYPE) res2;
-      dstPixelPtr[3] = (DTYPE) res3;
-    }
-
-    COUNT(0);
-    COUNT(1);
-    COUNT(2);
-    COUNT(3);
-    dstPixelPtr[0] = (DTYPE) res0;
-    dstPixelPtr[1] = (DTYPE) res1;
-    dstPixelPtr[2] = (DTYPE) res2;
-    dstPixelPtr[3] = (DTYPE) res3;
-  }
-
-  return MLIB_SUCCESS;
-}
-
-/***************************************************************/
-#else       /* for x86, using integer multiplies is faster */
+/* for x86, using integer multiplies is faster */
 
 /***************************************************************/
 /* for SHORT/USHORT decrease MLIB_SHIFT due to overflow in multiplies like fdy * (a10 - a00) */
 #undef  MLIB_SHIFT
 #define MLIB_SHIFT  15

@@ -573,8 +356,6 @@
   }
 
   return MLIB_SUCCESS;
 }
 
-#endif /* #ifdef __sparc */
-
 /***************************************************************/
< prev index next >