mirror of
https://github.com/RaySollium99/libpicofe.git
synced 2025-09-04 14:37:46 -04:00
neon filters: minor optimization from M-HT
This commit is contained in:
parent
e22d791cf8
commit
c688b90fe2
3 changed files with 17 additions and 18 deletions
|
@ -528,8 +528,8 @@
|
||||||
.endif
|
.endif
|
||||||
|
|
||||||
#ifdef DO_BGR_TO_RGB
|
#ifdef DO_BGR_TO_RGB
|
||||||
bgr1555_to_rgb565 q14, q15, q8, q9, q10
|
bgr1555_to_rgb565 q14, q15, q8, q9, q10, \reg1
|
||||||
bgr1555_to_rgb565 q6, q7, q8, q9, q10
|
bgr1555_to_rgb565 q6, q7, q8, q9, q10, \reg1
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
ubfx \reg1, \counter, #0, #3 @ reg1 = counter & 7
|
ubfx \reg1, \counter, #0, #3 @ reg1 = counter & 7
|
||||||
|
@ -636,8 +636,8 @@
|
||||||
vbsl q7, \qY, q12 @ E4 = < (Z == Y && Z == W) ? Y : C >
|
vbsl q7, \qY, q12 @ E4 = < (Z == Y && Z == W) ? Y : C >
|
||||||
|
|
||||||
#ifdef DO_BGR_TO_RGB
|
#ifdef DO_BGR_TO_RGB
|
||||||
bgr1555_to_rgb565 q14, q15, q0, q1, q2
|
bgr1555_to_rgb565 q14, q15, q0, q1, q2, \reg1
|
||||||
bgr1555_to_rgb565 q6, q7, q0, q1, q2
|
bgr1555_to_rgb565 q6, q7, q0, q1, q2, \reg1
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
vst2.16 {q14-q15}, [\aldst1]! @ [dst] = E1,E2; dst1 += 2*2*8
|
vst2.16 {q14-q15}, [\aldst1]! @ [dst] = E1,E2; dst1 += 2*2*8
|
||||||
|
@ -734,8 +734,8 @@
|
||||||
vbsl q7, \qY, q12 @ E4 = < (Z == Y && Z == W) ? Y : C >
|
vbsl q7, \qY, q12 @ E4 = < (Z == Y && Z == W) ? Y : C >
|
||||||
|
|
||||||
#ifdef DO_BGR_TO_RGB
|
#ifdef DO_BGR_TO_RGB
|
||||||
bgr1555_to_rgb565 q14, q15, q8, q9, q10
|
bgr1555_to_rgb565 q14, q15, q8, q9, q10, \reg1
|
||||||
bgr1555_to_rgb565 q6, q7, q8, q9, q10
|
bgr1555_to_rgb565 q6, q7, q8, q9, q10, \reg1
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
vst2.16 {q14-q15}, [\aldst1]! @ [dst] = E1,E2; dst1 += 2*2*8
|
vst2.16 {q14-q15}, [\aldst1]! @ [dst] = E1,E2; dst1 += 2*2*8
|
||||||
|
|
|
@ -30,17 +30,15 @@
|
||||||
#define A256 :256
|
#define A256 :256
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
.macro bgr1555_to_rgb565 dr0 dr1 t0 t1 t2
|
.macro bgr1555_to_rgb565 dr0 dr1 t0 t1 t2 ar
|
||||||
str r0, [sp, #-4]
|
mov \ar, #0x07c0
|
||||||
mov r0, #0x07c0
|
|
||||||
vshl.u16 \t0, \dr0, #11
|
vshl.u16 \t0, \dr0, #11
|
||||||
vshl.u16 \t1, \dr1, #11
|
vshl.u16 \t1, \dr1, #11
|
||||||
vshl.u16 \dr0, \dr0, #1
|
vshl.u16 \dr0, \dr0, #1
|
||||||
vshl.u16 \dr1, \dr1, #1
|
vshl.u16 \dr1, \dr1, #1
|
||||||
vdup.16 \t2, r0
|
vdup.16 \t2, \ar
|
||||||
vsri.u16 \t0, \dr0, #11
|
vsri.u16 \t0, \dr0, #11
|
||||||
vsri.u16 \t1, \dr1, #11
|
vsri.u16 \t1, \dr1, #11
|
||||||
ldr r0, [sp, #-4]
|
|
||||||
vbif \dr0, \t0, \t2
|
vbif \dr0, \t0, \t2
|
||||||
vbif \dr1, \t1, \t2
|
vbif \dr1, \t1, \t2
|
||||||
.endm
|
.endm
|
||||||
|
|
|
@ -290,7 +290,6 @@
|
||||||
vtbl.8 d17, {d28, d29}, d17 @ S2prev[7] = src[reg1 - 1]
|
vtbl.8 d17, {d28, d29}, d17 @ S2prev[7] = src[reg1 - 1]
|
||||||
|
|
||||||
vorr q10, q2, q3 @ C0 = < B == H || D == F >
|
vorr q10, q2, q3 @ C0 = < B == H || D == F >
|
||||||
and \reg1, \counter, #7
|
|
||||||
|
|
||||||
vceq.i16 q2, q14, \qH @ tmp2 = < D == H >
|
vceq.i16 q2, q14, \qH @ tmp2 = < D == H >
|
||||||
|
|
||||||
|
@ -313,10 +312,12 @@
|
||||||
vbsl q3, q12, q15 @ E3 = < (C0 || !(H == F)) ? E : F >
|
vbsl q3, q12, q15 @ E3 = < (C0 || !(H == F)) ? E : F >
|
||||||
|
|
||||||
#ifdef DO_BGR_TO_RGB
|
#ifdef DO_BGR_TO_RGB
|
||||||
bgr1555_to_rgb565 q0, q1, q12, q14, q15
|
bgr1555_to_rgb565 q0, q1, q12, q14, q15, \reg1
|
||||||
bgr1555_to_rgb565 q2, q3, q12, q14, q15
|
bgr1555_to_rgb565 q2, q3, q12, q14, q15, \reg1
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
|
and \reg1, \counter, #7
|
||||||
|
|
||||||
vst2.16 {q0-q1}, [\dst1] @ [dst] = E0,E1
|
vst2.16 {q0-q1}, [\dst1] @ [dst] = E0,E1
|
||||||
|
|
||||||
bic \counter, \counter, #7
|
bic \counter, \counter, #7
|
||||||
|
@ -389,8 +390,8 @@
|
||||||
vbsl q3, q12, q15 @ E3 = < (C0 || !(H == F)) ? E : F >
|
vbsl q3, q12, q15 @ E3 = < (C0 || !(H == F)) ? E : F >
|
||||||
|
|
||||||
#ifdef DO_BGR_TO_RGB
|
#ifdef DO_BGR_TO_RGB
|
||||||
bgr1555_to_rgb565 q0, q1, q12, q14, q15
|
bgr1555_to_rgb565 q0, q1, q12, q14, q15, \reg1
|
||||||
bgr1555_to_rgb565 q2, q3, q12, q14, q15
|
bgr1555_to_rgb565 q2, q3, q12, q14, q15, \reg1
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
vst2.16 {q0-q1}, [\aldst1]! @ [dst] = E0,E1; dst1 += 2*2*8
|
vst2.16 {q0-q1}, [\aldst1]! @ [dst] = E0,E1; dst1 += 2*2*8
|
||||||
|
@ -448,8 +449,8 @@
|
||||||
vbsl q3, q12, q15 @ E3 = < (C0 || !(H == F)) ? E : F >
|
vbsl q3, q12, q15 @ E3 = < (C0 || !(H == F)) ? E : F >
|
||||||
|
|
||||||
#ifdef DO_BGR_TO_RGB
|
#ifdef DO_BGR_TO_RGB
|
||||||
bgr1555_to_rgb565 q0, q1, q12, q14, q15
|
bgr1555_to_rgb565 q0, q1, q12, q14, q15, \reg1
|
||||||
bgr1555_to_rgb565 q2, q3, q12, q14, q15
|
bgr1555_to_rgb565 q2, q3, q12, q14, q15, \reg1
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
vst2.16 {q0-q1}, [\aldst1]! @ [dst] = E0,E1; dst1 += 2*2*8
|
vst2.16 {q0-q1}, [\aldst1]! @ [dst] = E0,E1; dst1 += 2*2*8
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue