From: notaz Date: Sun, 28 Oct 2012 23:14:16 +0000 (+0200) Subject: neon filters: fix build on old toolchains X-Git-Url: https://notaz.gp2x.de/cgi-bin/gitweb.cgi?p=libpicofe.git;a=commitdiff_plain;h=67381db0f42d389fa4abe7520ab81e9d96226ea1 neon filters: fix build on old toolchains --- diff --git a/arm/neon_eagle2x.S b/arm/neon_eagle2x.S index aa70021..4169550 100644 --- a/arm/neon_eagle2x.S +++ b/arm/neon_eagle2x.S @@ -22,8 +22,8 @@ .arm -#include "neon_eagle2x.Sinc" #include "neon_normalxx.Sinc" +#include "neon_eagle2x.Sinc" .global neon_eagle2x_8_8 .global neon_eagle2x_16_16 @@ -50,10 +50,10 @@ neon_eagle2x_8_8: add r6, r1, ip @ r6 = dst + dststride sub sp, sp, #64 @ sp -= 64 sub r3, r3, r2 @ r3 = srcstride - width - vst1.64 {d8-d11}, [sp:256] @ save q4,q5 + vst1.64 {d8-d11}, [sp,:256] @ save q4,q5 add r7, sp, #32 @ r7 = sp + 32 sub ip, ip, r2 @ ip = dststride - width - vst1.64 {d12-d15}, [r7:256] @ save q6,q7 + vst1.64 {d12-d15}, [r7,:256] @ save q6,q7 lsl ip, #1 @ ip = 2 * dststride - 2 * width mov r7, r2 @ r7 = width sub r9, r9, #2 @ r9 = height - 2 @@ -101,9 +101,9 @@ neon_eagle2x_8_8: neon_eagle2x_8_8_line last, r4, r0, r5, r7, r1, r6, r8, 0, 0 add ip, sp, #32 @ ip = sp + 32 - vld1.64 {d8-d11}, [sp:256] @ restore q4,q5 + vld1.64 {d8-d11}, [sp,:256] @ restore q4,q5 mov sp, r10 @ sp = oldsp - vld1.64 {d12-d15}, [ip:256] @ restore q6,q7 + vld1.64 {d12-d15}, [ip,:256] @ restore q6,q7 pop {r4-r10} bx lr @@ -130,10 +130,10 @@ neon_eagle2x_16_16: add r6, r1, ip @ r6 = dst + dststride sub sp, sp, #64 @ sp -= 64 sub r3, r3, r2, lsl #1 @ r3 = srcstride - 2 * width - vst1.64 {d8-d11}, [sp:256] @ save q4,q5 + vst1.64 {d8-d11}, [sp,:256] @ save q4,q5 add r7, sp, #32 @ r7 = sp + 32 sub ip, ip, r2, lsl #1 @ ip = dststride - 2 * width - vst1.64 {d12-d15}, [r7:256] @ save q6,q7 + vst1.64 {d12-d15}, [r7,:256] @ save q6,q7 lsl ip, #1 @ ip = 2 * dststride - 4 * width mov r7, r2 @ r7 = width sub r9, r9, #2 @ r9 = height - 2 @@ -180,9 +180,9 @@ neon_eagle2x_16_16: neon_eagle2x_16_16_line last, r4, r0, r5, r7, r1, r6, r8, 0, 0 add ip, sp, #32 @ ip = sp + 32 - vld1.64 {d8-d11}, [sp:256] @ restore q4,q5 + vld1.64 {d8-d11}, [sp,:256] @ restore q4,q5 mov sp, r10 @ sp = oldsp - vld1.64 {d12-d15}, [ip:256] @ restore q6,q7 + vld1.64 {d12-d15}, [ip,:256] @ restore q6,q7 pop {r4-r10} bx lr @@ -222,9 +222,9 @@ neon_eagle2x_8_16: mov lr, sp @ tmpline1 = sp bic sp, sp, #31 @ align sp to 32 bytes sub r8, sp, #64 @ r8 = sp - 64 - vst1.64 {d8-d11}, [r8:256] @ save q4,q5 + vst1.64 {d8-d11}, [r8,:256] @ save q4,q5 sub r9, sp, #32 @ r9 = sp - 32 - vst1.64 {d12-d15}, [r9:256] @ save q6,q7 + vst1.64 {d12-d15}, [r9,:256]@ save q6,q7 sub sp, sp, #(36 + 64) @ sp -= (36 + 64) str r6, [sp] @ oldsp = r6 str r5, [sp, #4] @ height = r5 @@ -327,9 +327,9 @@ neon_eagle2x_8_16: add r6, sp, #36 @ r6 = sp + 36 ldr sp, [sp] @ sp = oldsp - vld1.64 {d8-d11}, [r6:256] @ restore q4,q5 + vld1.64 {d8-d11}, [r6,:256] @ restore q4,q5 add ip, r6, #32 @ ip = r6 + 32 - vld1.64 {d12-d15}, [ip:256] @ restore q6,q7 + vld1.64 {d12-d15}, [ip,:256]@ restore q6,q7 pop {r4-r11,lr} bx lr diff --git a/arm/neon_eagle2x.Sinc b/arm/neon_eagle2x.Sinc index 7413312..cfbd303 100644 --- a/arm/neon_eagle2x.Sinc +++ b/arm/neon_eagle2x.Sinc @@ -751,9 +751,9 @@ .else .ifeq \dstalign32 - _neon_eagle2x_16_16_line_\part \src1, \src2, \src3, \counter, \dst1, \dst2, \reg1, \src1:128, \src2:128, \src3:128, \dst1, \dst2 + _neon_eagle2x_16_16_line_\part \src1, \src2, \src3, \counter, \dst1, \dst2, \reg1, \src1 A128, \src2 A128, \src3 A128, \dst1, \dst2 .else - _neon_eagle2x_16_16_line_\part \src1, \src2, \src3, \counter, \dst1, \dst2, \reg1, \src1:128, \src2:128, \src3:128, \dst1:256, \dst2:256 + _neon_eagle2x_16_16_line_\part \src1, \src2, \src3, \counter, \dst1, \dst2, \reg1, \src1 A128, \src2 A128, \src3 A128, \dst1 A256, \dst2 A256 .endif .endif diff --git a/arm/neon_normalxx.Sinc b/arm/neon_normalxx.Sinc index fcbcfd4..0391e12 100644 --- a/arm/neon_normalxx.Sinc +++ b/arm/neon_normalxx.Sinc @@ -21,6 +21,15 @@ @@ +#if __GNUC__ < 4 || (__GNUC__ == 4 && __GNUC_MINOR__ < 4) +/* can't use because gas wants ',' before ':' */ +#define A128 +#define A256 +#else +#define A128 :128 +#define A256 :256 +#endif + .macro _neon_normalxx_8_16_line_middle src, dst, pal, counter, reg1, reg2, reg3, reg4, reg5, reg6, reg7, reg8, reg9, dststride, dA, dB ldr \reg1, [\src] @ reg1 = src[0-3] diff --git a/arm/neon_scale2x.S b/arm/neon_scale2x.S index 5c68cc6..ef568d9 100644 --- a/arm/neon_scale2x.S +++ b/arm/neon_scale2x.S @@ -22,8 +22,8 @@ .arm -#include "neon_scale2x.Sinc" #include "neon_normalxx.Sinc" +#include "neon_scale2x.Sinc" .global neon_scale2x_8_8 .global neon_scale2x_16_16 diff --git a/arm/neon_scale2x.Sinc b/arm/neon_scale2x.Sinc index e9a80ff..a3379ca 100644 --- a/arm/neon_scale2x.Sinc +++ b/arm/neon_scale2x.Sinc @@ -464,9 +464,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