X-Git-Url: https://notaz.gp2x.de/cgi-bin/gitweb.cgi?a=blobdiff_plain;f=arm%2Fneon_scale2x.Sinc;h=658086b95e30ddec2fc179ba980fef609ab8dd8c;hb=c688b90fe2c8b9ceb57a4e6f773397a90ade5d4f;hp=e9a80ff359233a3ac38bde0afc744a003b7f9a48;hpb=7fc3ac8a09642992b62a9c3ab5df0f52ac4e8fee;p=libpicofe.git diff --git a/arm/neon_scale2x.Sinc b/arm/neon_scale2x.Sinc index e9a80ff..658086b 100644 --- a/arm/neon_scale2x.Sinc +++ b/arm/neon_scale2x.Sinc @@ -290,7 +290,6 @@ vtbl.8 d17, {d28, d29}, d17 @ S2prev[7] = src[reg1 - 1] vorr q10, q2, q3 @ C0 = < B == H || D == F > - and \reg1, \counter, #7 vceq.i16 q2, q14, \qH @ tmp2 = < D == H > @@ -309,10 +308,18 @@ vorn q3, q10, q3 @ tmp3 = < C0 || !(H == F) > vbsl q2, q12, q14 @ E2 = < (C0 || !(D == H)) ? E : D > - vst2.16 {q0-q1}, [\dst1] @ [dst] = E0,E1 vbsl q3, q12, q15 @ E3 = < (C0 || !(H == F)) ? E : F > + #ifdef DO_BGR_TO_RGB + bgr1555_to_rgb565 q0, q1, q12, q14, q15, \reg1 + bgr1555_to_rgb565 q2, q3, q12, q14, q15, \reg1 + #endif + + and \reg1, \counter, #7 + + vst2.16 {q0-q1}, [\dst1] @ [dst] = E0,E1 + bic \counter, \counter, #7 .ifeqs "\qB", "q11" add \src1, \src1, \reg1, lsl #1 @@ -379,12 +386,18 @@ vorn q3, q10, q3 @ tmp3 = < C0 || !(H == F) > vbsl q2, q12, q14 @ E2 = < (C0 || !(D == H)) ? E : D > + + vbsl q3, q12, q15 @ E3 = < (C0 || !(H == F)) ? E : F > + + #ifdef DO_BGR_TO_RGB + bgr1555_to_rgb565 q0, q1, q12, q14, q15, \reg1 + bgr1555_to_rgb565 q2, q3, q12, q14, q15, \reg1 + #endif + vst2.16 {q0-q1}, [\aldst1]! @ [dst] = E0,E1; dst1 += 2*2*8 cmp \counter, #8 - vbsl q3, q12, q15 @ E3 = < (C0 || !(H == F)) ? E : F > - vst2.16 {q2-q3}, [\aldst2]! @ [dst + dststride] = E2,E3; dst2 += 2*2*8 bhi 2b @@ -432,10 +445,16 @@ vorn q3, q10, q3 @ tmp3 = < C0 || !(H == F) > vbsl q2, q12, q14 @ E2 = < (C0 || !(D == H)) ? E : D > - vst2.16 {q0-q1}, [\aldst1]! @ [dst] = E0,E1; dst1 += 2*2*8 vbsl q3, q12, q15 @ E3 = < (C0 || !(H == F)) ? E : F > + #ifdef DO_BGR_TO_RGB + bgr1555_to_rgb565 q0, q1, q12, q14, q15, \reg1 + bgr1555_to_rgb565 q2, q3, q12, q14, q15, \reg1 + #endif + + vst2.16 {q0-q1}, [\aldst1]! @ [dst] = E0,E1; dst1 += 2*2*8 + vst2.16 {q2-q3}, [\aldst2]! @ [dst + dststride] = E2,E3; dst2 += 2*2*8 .endm @@ -464,9 +483,9 @@ .else .ifeq \dstalign32 - _neon_scale2x_16_16_line_\part \src1, \src2, \src3, \counter, \dst1, \dst2, \reg1, \src1:128, \src2:128, \src3:128, \dst1, \dst2 + _neon_scale2x_16_16_line_\part \src1, \src2, \src3, \counter, \dst1, \dst2, \reg1, \src1 A128, \src2 A128, \src3 A128, \dst1, \dst2 .else - _neon_scale2x_16_16_line_\part \src1, \src2, \src3, \counter, \dst1, \dst2, \reg1, \src1:128, \src2:128, \src3:128, \dst1:256, \dst2:256 + _neon_scale2x_16_16_line_\part \src1, \src2, \src3, \counter, \dst1, \dst2, \reg1, \src1 A128, \src2 A128, \src3 A128, \dst1 A256, \dst2 A256 .endif .endif