< prev index next >

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

Print this page
rev 59383 : [mq]: final

@@ -1,7 +1,7 @@
 /*
- * Copyright (c) 2003, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2003, 2020, Oracle and/or its affiliates. All rights reserved.
  * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
  *
  * This code is free software; you can redistribute it and/or modify it
  * under the terms of the GNU General Public License version 2 only, as
  * published by the Free Software Foundation.  Oracle designates this

@@ -75,219 +75,11 @@
 #define ROUND(x) (x)
 
 #define FUN_NAME(CHAN) mlib_ImageAffine_s16_##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)
  */

@@ -350,13 +142,10 @@
 
 #endif /* MLIB_SHIFT == 15 */
 
     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;

@@ -402,13 +191,10 @@
 #endif /* MLIB_SHIFT == 15 */
 
     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);

@@ -462,13 +248,10 @@
 
     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);

@@ -530,13 +313,10 @@
     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);

@@ -562,8 +342,6 @@
   }
 
   return MLIB_SUCCESS;
 }
 
-#endif /* __sparc ( for SPARC, using floating-point multiplies is faster ) */
-
 /***************************************************************/
< prev index next >