< prev index next >

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

Print this page
rev 59383 : [mq]: final

*** 1,7 **** /* ! * Copyright (c) 2000, 2013, 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 --- 1,7 ---- /* ! * Copyright (c) 2000, 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
*** 161,172 **** dll = mlib_ImageGetStride(dst) / sizeof(type); \ adr_src = (type *)mlib_ImageGetData(src); \ adr_dst = (type *)mlib_ImageGetData(dst) /***************************************************************/ - #ifndef __sparc - #if IMG_TYPE == 1 /* Test for the presence of any "1" bit in bits 8 to 31 of val. If present, then val is either negative or >255. If over/underflows of 8 bits --- 161,170 ----
*** 205,215 **** dst = MLIB_U16_MIN; \ else \ dst = (mlib_u16)val #endif /* IMG_TYPE == 1 */ - #endif /* __sparc */ /***************************************************************/ #define MAX_KER 7 #define MAX_N 15 --- 203,212 ----
*** 256,268 **** if (!(cmask & (1 << (chan1 - 1 - c)))) continue; sl = sl_c + c; dl = dl_c + c; - #ifdef __SUNPRO_C - #pragma pipeloop(0) - #endif /* __SUNPRO_C */ for (j = 0; j < hsize; j++) pbuff[j] = 0.0; for (i = 0; i < wid; i++) { sl0 = sl; --- 253,262 ----
*** 272,284 **** k0 = pk[0]; k1 = pk[1]; k2 = pk[2]; k3 = pk[3]; p2 = sp[0]; p3 = sp[sll]; p4 = sp[2*sll]; sp += 3*sll; - #ifdef __SUNPRO_C - #pragma pipeloop(0) - #endif /* __SUNPRO_C */ for (j = 0; j < hsize; j += 2) { p0 = p2; p1 = p3; p2 = p4; p3 = sp[0]; p4 = sp[sll]; --- 266,275 ----
*** 301,313 **** kh = n - off; if (kh == 4) { sp += 3*sll; - #ifdef __SUNPRO_C - #pragma pipeloop(0) - #endif /* __SUNPRO_C */ for (j = 0; j <= (hsize - 2); j += 2) { p0 = p2; p1 = p3; p2 = p4; p3 = sp[0]; p4 = sp[sll]; --- 292,301 ----
*** 336,348 **** } } else if (kh == 3) { sp += 2*sll; - #ifdef __SUNPRO_C - #pragma pipeloop(0) - #endif /* __SUNPRO_C */ for (j = 0; j <= (hsize - 2); j += 2) { p0 = p2; p1 = p3; p2 = sp[0]; p3 = sp[sll]; --- 324,333 ----
*** 371,383 **** } } else if (kh == 2) { sp += sll; - #ifdef __SUNPRO_C - #pragma pipeloop(0) - #endif /* __SUNPRO_C */ for (j = 0; j <= (hsize - 2); j += 2) { p0 = p2; p1 = sp[0]; p2 = sp[sll]; --- 356,365 ----
*** 404,416 **** dp[0] = FROM_S32(d0); } } else /* if (kh == 1) */ { - #ifdef __SUNPRO_C - #pragma pipeloop(0) - #endif /* __SUNPRO_C */ for (j = 0; j < hsize; j++) { p0 = sp[0]; d0 = D2I(p0*k0 + pbuff[j]); --- 386,395 ----
*** 519,543 **** dl = adr_dst + c; for (l = 0; l < n; l++) { FTYPE *buff = buffs[l]; - #ifdef __SUNPRO_C - #pragma pipeloop(0) - #endif /* __SUNPRO_C */ for (i = 0; i < wid + (m - 1); i++) { buff[i] = (FTYPE)sl[i*chan1]; } sl += sll; } buff_ind = 0; - #ifdef __SUNPRO_C - #pragma pipeloop(0) - #endif /* __SUNPRO_C */ for (i = 0; i < wid; i++) buffd[i] = 0.0; for (j = 0; j < hgt; j++) { FTYPE **buffc = buffs + buff_ind; FTYPE *buffn = buffc[n]; --- 498,516 ----
*** 566,591 **** pk += kw; if (kw == 7) { if (l < (n - 1) || off < m) { - #ifdef __SUNPRO_C - #pragma pipeloop(0) - #endif /* __SUNPRO_C */ for (i = 0; i <= (wid - 2); i += 2) { p0 = p2; p1 = p3; p2 = p4; p3 = p5; p4 = p6; p5 = p7; p6 = buff[i + 6]; p7 = buff[i + 7]; buffd[i ] += p0*k0 + p1*k1 + p2*k2 + p3*k3 + p4*k4 + p5*k5 + p6*k6; buffd[i + 1] += p1*k0 + p2*k1 + p3*k2 + p4*k3 + p5*k4 + p6*k5 + p7*k6; } } else { - #ifdef __SUNPRO_C - #pragma pipeloop(0) - #endif /* __SUNPRO_C */ for (i = 0; i <= (wid - 2); i += 2) { p0 = p2; p1 = p3; p2 = p4; p3 = p5; p4 = p6; p5 = p7; p6 = buff[i + 6]; p7 = buff[i + 7]; --- 539,558 ----
*** 610,635 **** } } else if (kw == 6) { if (l < (n - 1) || off < m) { - #ifdef __SUNPRO_C - #pragma pipeloop(0) - #endif /* __SUNPRO_C */ for (i = 0; i <= (wid - 2); i += 2) { p0 = p2; p1 = p3; p2 = p4; p3 = p5; p4 = p6; p5 = buff[i + 5]; p6 = buff[i + 6]; buffd[i ] += p0*k0 + p1*k1 + p2*k2 + p3*k3 + p4*k4 + p5*k5; buffd[i + 1] += p1*k0 + p2*k1 + p3*k2 + p4*k3 + p5*k4 + p6*k5; } } else { - #ifdef __SUNPRO_C - #pragma pipeloop(0) - #endif /* __SUNPRO_C */ for (i = 0; i <= (wid - 2); i += 2) { p0 = p2; p1 = p3; p2 = p4; p3 = p5; p4 = p6; p5 = buff[i + 5]; p6 = buff[i + 6]; --- 577,596 ----
*** 651,676 **** } } else if (kw == 5) { if (l < (n - 1) || off < m) { - #ifdef __SUNPRO_C - #pragma pipeloop(0) - #endif /* __SUNPRO_C */ for (i = 0; i <= (wid - 2); i += 2) { p0 = p2; p1 = p3; p2 = p4; p3 = p5; p4 = buff[i + 4]; p5 = buff[i + 5]; buffd[i ] += p0*k0 + p1*k1 + p2*k2 + p3*k3 + p4*k4; buffd[i + 1] += p1*k0 + p2*k1 + p3*k2 + p4*k3 + p5*k4; } } else { - #ifdef __SUNPRO_C - #pragma pipeloop(0) - #endif /* __SUNPRO_C */ for (i = 0; i <= (wid - 2); i += 2) { p0 = p2; p1 = p3; p2 = p4; p3 = p5; p4 = buff[i + 4]; p5 = buff[i + 5]; --- 612,631 ----
*** 692,717 **** } } else if (kw == 4) { if (l < (n - 1) || off < m) { - #ifdef __SUNPRO_C - #pragma pipeloop(0) - #endif /* __SUNPRO_C */ for (i = 0; i <= (wid - 2); i += 2) { p0 = p2; p1 = p3; p2 = p4; p3 = buff[i + 3]; p4 = buff[i + 4]; buffd[i ] += p0*k0 + p1*k1 + p2*k2 + p3*k3; buffd[i + 1] += p1*k0 + p2*k1 + p3*k2 + p4*k3; } } else { - #ifdef __SUNPRO_C - #pragma pipeloop(0) - #endif /* __SUNPRO_C */ for (i = 0; i <= (wid - 2); i += 2) { p0 = p2; p1 = p3; p2 = p4; p3 = buff[i + 3]; p4 = buff[i + 4]; --- 647,666 ----
*** 733,758 **** } } else if (kw == 3) { if (l < (n - 1) || off < m) { - #ifdef __SUNPRO_C - #pragma pipeloop(0) - #endif /* __SUNPRO_C */ for (i = 0; i <= (wid - 2); i += 2) { p0 = p2; p1 = p3; p2 = buff[i + 2]; p3 = buff[i + 3]; buffd[i ] += p0*k0 + p1*k1 + p2*k2; buffd[i + 1] += p1*k0 + p2*k1 + p3*k2; } } else { - #ifdef __SUNPRO_C - #pragma pipeloop(0) - #endif /* __SUNPRO_C */ for (i = 0; i <= (wid - 2); i += 2) { p0 = p2; p1 = p3; p2 = buff[i + 2]; p3 = buff[i + 3]; --- 682,701 ----
*** 774,799 **** } } else /*if (kw == 2)*/ { if (l < (n - 1) || off < m) { - #ifdef __SUNPRO_C - #pragma pipeloop(0) - #endif /* __SUNPRO_C */ for (i = 0; i <= (wid - 2); i += 2) { p0 = p2; p1 = buff[i + 1]; p2 = buff[i + 2]; buffd[i ] += p0*k0 + p1*k1; buffd[i + 1] += p1*k0 + p2*k1; } } else { - #ifdef __SUNPRO_C - #pragma pipeloop(0) - #endif /* __SUNPRO_C */ for (i = 0; i <= (wid - 2); i += 2) { p0 = p2; p1 = buff[i + 1]; p2 = buff[i + 2]; --- 717,736 ----
*** 851,861 **** FREE_AND_RETURN_STATUS; } /***************************************************************/ ! #ifndef __sparc /* for x86, using integer multiplies is faster */ #define STORE_RES(res, x) \ x >>= shift2; \ CLAMP_STORE(res, x) --- 788,798 ---- FREE_AND_RETURN_STATUS; } /***************************************************************/ ! /* for x86, using integer multiplies is faster */ #define STORE_RES(res, x) \ x >>= shift2; \ CLAMP_STORE(res, x)
*** 920,932 **** if (!(cmask & (1 << (nchannel - 1 - c)))) continue; sl = adr_src + c; dl = adr_dst + c; - #ifdef __SUNPRO_C - #pragma pipeloop(0) - #endif /* __SUNPRO_C */ for (i = 0; i < wid; i++) buffd[i] = 0; for (j = 0; j < hgt; j++) { mlib_s32 *pk = k; --- 857,866 ----
*** 953,965 **** sp += (kw - 1)*chan1; if (kw == 7) { if (l < (n - 1) || off < m) { - #ifdef __SUNPRO_C - #pragma pipeloop(0) - #endif /* __SUNPRO_C */ for (i = 0; i <= (wid - 2); i += 2) { p0 = p2; p1 = p3; p2 = p4; p3 = p5; p4 = p6; p5 = p7; p6 = sp[0]; p7 = sp[chan1]; --- 887,896 ----
*** 968,980 **** sp += chan2; } } else { - #ifdef __SUNPRO_C - #pragma pipeloop(0) - #endif /* __SUNPRO_C */ for (i = 0; i <= (wid - 2); i += 2) { p0 = p2; p1 = p3; p2 = p4; p3 = p5; p4 = p6; p5 = p7; p6 = sp[0]; p7 = sp[chan1]; --- 899,908 ----
*** 993,1005 **** } } else if (kw == 6) { if (l < (n - 1) || off < m) { - #ifdef __SUNPRO_C - #pragma pipeloop(0) - #endif /* __SUNPRO_C */ for (i = 0; i <= (wid - 2); i += 2) { p0 = p2; p1 = p3; p2 = p4; p3 = p5; p4 = p6; p5 = sp[0]; p6 = sp[chan1]; --- 921,930 ----
*** 1008,1020 **** sp += chan2; } } else { - #ifdef __SUNPRO_C - #pragma pipeloop(0) - #endif /* __SUNPRO_C */ for (i = 0; i <= (wid - 2); i += 2) { p0 = p2; p1 = p3; p2 = p4; p3 = p5; p4 = p6; p5 = sp[0]; p6 = sp[chan1]; --- 933,942 ----
*** 1033,1045 **** } } else if (kw == 5) { if (l < (n - 1) || off < m) { - #ifdef __SUNPRO_C - #pragma pipeloop(0) - #endif /* __SUNPRO_C */ for (i = 0; i <= (wid - 2); i += 2) { p0 = p2; p1 = p3; p2 = p4; p3 = p5; p4 = sp[0]; p5 = sp[chan1]; --- 955,964 ----
*** 1048,1060 **** sp += chan2; } } else { - #ifdef __SUNPRO_C - #pragma pipeloop(0) - #endif /* __SUNPRO_C */ for (i = 0; i <= (wid - 2); i += 2) { p0 = p2; p1 = p3; p2 = p4; p3 = p5; p4 = sp[0]; p5 = sp[chan1]; --- 967,976 ----
*** 1073,1085 **** } } else if (kw == 4) { if (l < (n - 1) || off < m) { - #ifdef __SUNPRO_C - #pragma pipeloop(0) - #endif /* __SUNPRO_C */ for (i = 0; i <= (wid - 2); i += 2) { p0 = p2; p1 = p3; p2 = p4; p3 = sp[0]; p4 = sp[chan1]; --- 989,998 ----
*** 1088,1100 **** sp += chan2; } } else { - #ifdef __SUNPRO_C - #pragma pipeloop(0) - #endif /* __SUNPRO_C */ for (i = 0; i <= (wid - 2); i += 2) { p0 = p2; p1 = p3; p2 = p4; p3 = sp[0]; p4 = sp[chan1]; --- 1001,1010 ----
*** 1113,1125 **** } } else if (kw == 3) { if (l < (n - 1) || off < m) { - #ifdef __SUNPRO_C - #pragma pipeloop(0) - #endif /* __SUNPRO_C */ for (i = 0; i <= (wid - 2); i += 2) { p0 = p2; p1 = p3; p2 = sp[0]; p3 = sp[chan1]; --- 1023,1032 ----
*** 1128,1140 **** sp += chan2; } } else { - #ifdef __SUNPRO_C - #pragma pipeloop(0) - #endif /* __SUNPRO_C */ for (i = 0; i <= (wid - 2); i += 2) { p0 = p2; p1 = p3; p2 = sp[0]; p3 = sp[chan1]; --- 1035,1044 ----
*** 1153,1165 **** } } else if (kw == 2) { if (l < (n - 1) || off < m) { - #ifdef __SUNPRO_C - #pragma pipeloop(0) - #endif /* __SUNPRO_C */ for (i = 0; i <= (wid - 2); i += 2) { p0 = p2; p1 = sp[0]; p2 = sp[chan1]; --- 1057,1066 ----
*** 1168,1180 **** sp += chan2; } } else { - #ifdef __SUNPRO_C - #pragma pipeloop(0) - #endif /* __SUNPRO_C */ for (i = 0; i <= (wid - 2); i += 2) { p0 = p2; p1 = sp[0]; p2 = sp[chan1]; --- 1069,1078 ----
*** 1193,1205 **** } } else /*if (kw == 1)*/ { if (l < (n - 1) || off < m) { - #ifdef __SUNPRO_C - #pragma pipeloop(0) - #endif /* __SUNPRO_C */ for (i = 0; i <= (wid - 2); i += 2) { p0 = sp[0]; p1 = sp[chan1]; buffd[i ] += p0*k0; --- 1091,1100 ----
*** 1207,1219 **** sp += chan2; } } else { - #ifdef __SUNPRO_C - #pragma pipeloop(0) - #endif /* __SUNPRO_C */ for (i = 0; i <= (wid - 2); i += 2) { p0 = sp[0]; p1 = sp[chan1]; d0 = (p0*k0 + buffd[i ]); --- 1102,1111 ----
*** 1264,1271 **** return MLIB_SUCCESS; } /***************************************************************/ - #endif /* __sparc ( for x86, using integer multiplies is faster ) */ - - /***************************************************************/ --- 1156,1160 ----
< prev index next >