aboutsummaryrefslogtreecommitdiffstats
path: root/meta-oe/recipes-graphics/xorg-lib/pixman-0.23.6/0003-ARM-NEON-Replace-old-bilinear-scanline-generator-wit.patch
diff options
context:
space:
mode:
Diffstat (limited to 'meta-oe/recipes-graphics/xorg-lib/pixman-0.23.6/0003-ARM-NEON-Replace-old-bilinear-scanline-generator-wit.patch')
-rw-r--r--meta-oe/recipes-graphics/xorg-lib/pixman-0.23.6/0003-ARM-NEON-Replace-old-bilinear-scanline-generator-wit.patch520
1 files changed, 0 insertions, 520 deletions
diff --git a/meta-oe/recipes-graphics/xorg-lib/pixman-0.23.6/0003-ARM-NEON-Replace-old-bilinear-scanline-generator-wit.patch b/meta-oe/recipes-graphics/xorg-lib/pixman-0.23.6/0003-ARM-NEON-Replace-old-bilinear-scanline-generator-wit.patch
deleted file mode 100644
index 7c6f501ac3..0000000000
--- a/meta-oe/recipes-graphics/xorg-lib/pixman-0.23.6/0003-ARM-NEON-Replace-old-bilinear-scanline-generator-wit.patch
+++ /dev/null
@@ -1,520 +0,0 @@
-From 8d0460c4f1b23f3a13e9ff7282b30dd06f10aee1 Mon Sep 17 00:00:00 2001
-From: Taekyun Kim <tkq.kim@samsung.com>
-Date: Fri, 23 Sep 2011 00:03:22 +0900
-Subject: [PATCH 3/8] ARM: NEON: Replace old bilinear scanline generator with new template
-
-Bilinear scanline functions in pixman-arm-neon-asm-bilinear.S can
-be replaced with new template just by wrapping existing macros.
----
- pixman/pixman-arm-neon-asm-bilinear.S | 484 ++++++++++++++++++++-------------
- 1 files changed, 292 insertions(+), 192 deletions(-)
-
-diff --git a/pixman/pixman-arm-neon-asm-bilinear.S b/pixman/pixman-arm-neon-asm-bilinear.S
-index 784e5df..25bcb24 100644
---- a/pixman/pixman-arm-neon-asm-bilinear.S
-+++ b/pixman/pixman-arm-neon-asm-bilinear.S
-@@ -582,198 +582,6 @@ fname:
- bilinear_store_&dst_fmt 4, q2, q3
- .endm
-
--.macro generate_bilinear_scanline_func_src_dst \
-- fname, src_fmt, dst_fmt, op, \
-- bpp_shift, prefetch_distance
--
--pixman_asm_function fname
-- OUT .req r0
-- TOP .req r1
-- BOTTOM .req r2
-- WT .req r3
-- WB .req r4
-- X .req r5
-- UX .req r6
-- WIDTH .req ip
-- TMP1 .req r3
-- TMP2 .req r4
-- PF_OFFS .req r7
-- TMP3 .req r8
-- TMP4 .req r9
-- STRIDE .req r2
--
-- mov ip, sp
-- push {r4, r5, r6, r7, r8, r9}
-- mov PF_OFFS, #prefetch_distance
-- ldmia ip, {WB, X, UX, WIDTH}
-- mul PF_OFFS, PF_OFFS, UX
--
-- .set prefetch_offset, prefetch_distance
--
-- sub STRIDE, BOTTOM, TOP
-- .unreq BOTTOM
--
-- cmp WIDTH, #0
-- ble 3f
--
-- vdup.u16 q12, X
-- vdup.u16 q13, UX
-- vdup.u8 d28, WT
-- vdup.u8 d29, WB
-- vadd.u16 d25, d25, d26
-- vadd.u16 q13, q13, q13
-- vshr.u16 q15, q12, #8
-- vadd.u16 q12, q12, q13
--
-- subs WIDTH, WIDTH, #4
-- blt 1f
-- mov PF_OFFS, PF_OFFS, asr #(16 - bpp_shift)
--0:
-- bilinear_interpolate_four_pixels src_fmt, x, dst_fmt, op
-- subs WIDTH, WIDTH, #4
-- bge 0b
--1:
-- tst WIDTH, #2
-- beq 2f
-- bilinear_interpolate_two_pixels src_fmt, x, dst_fmt, op
--2:
-- tst WIDTH, #1
-- beq 3f
-- bilinear_interpolate_last_pixel src_fmt, x, dst_fmt, op
--3:
-- pop {r4, r5, r6, r7, r8, r9}
-- bx lr
--
-- .unreq OUT
-- .unreq TOP
-- .unreq WT
-- .unreq WB
-- .unreq X
-- .unreq UX
-- .unreq WIDTH
-- .unreq TMP1
-- .unreq TMP2
-- .unreq PF_OFFS
-- .unreq TMP3
-- .unreq TMP4
-- .unreq STRIDE
--.endfunc
--
--.endm
--
--.macro generate_bilinear_scanline_func_src_a8_dst \
-- fname, src_fmt, dst_fmt, op, \
-- bpp_shift, prefetch_distance
--
--pixman_asm_function fname
-- OUT .req r0
-- MASK .req r1
-- TOP .req r2
-- BOTTOM .req r3
-- WT .req r4
-- WB .req r5
-- X .req r6
-- UX .req r7
-- WIDTH .req ip
-- TMP1 .req r4
-- TMP2 .req r5
-- PF_OFFS .req r8
-- TMP3 .req r9
-- TMP4 .req r10
-- STRIDE .req r3
--
-- mov ip, sp
-- push {r4, r5, r6, r7, r8, r9, r10, ip}
-- mov PF_OFFS, #prefetch_distance
-- ldmia ip, {WT, WB, X, UX, WIDTH}
-- mul PF_OFFS, PF_OFFS, UX
--
-- .set prefetch_offset, prefetch_distance
--
-- sub STRIDE, BOTTOM, TOP
-- .unreq BOTTOM
--
-- cmp WIDTH, #0
-- ble 3f
--
-- vdup.u16 q12, X
-- vdup.u16 q13, UX
-- vdup.u8 d28, WT
-- vdup.u8 d29, WB
-- vadd.u16 d25, d25, d26
-- vadd.u16 q13, q13, q13
-- vshr.u16 q15, q12, #8
-- vadd.u16 q12, q12, q13
--
-- subs WIDTH, WIDTH, #4
-- blt 1f
-- mov PF_OFFS, PF_OFFS, asr #(16 - bpp_shift)
--0:
-- bilinear_interpolate_four_pixels src_fmt, 8, dst_fmt, op
-- subs WIDTH, WIDTH, #4
-- bge 0b
--1:
-- tst WIDTH, #2
-- beq 2f
-- bilinear_interpolate_two_pixels src_fmt, 8, dst_fmt, op
--2:
-- tst WIDTH, #1
-- beq 3f
-- bilinear_interpolate_last_pixel src_fmt, 8, dst_fmt, op
--3:
-- pop {r4, r5, r6, r7, r8, r9, r10, ip}
-- bx lr
--
-- .unreq OUT
-- .unreq TOP
-- .unreq WT
-- .unreq WB
-- .unreq X
-- .unreq UX
-- .unreq WIDTH
-- .unreq MASK
-- .unreq TMP1
-- .unreq TMP2
-- .unreq PF_OFFS
-- .unreq TMP3
-- .unreq TMP4
-- .unreq STRIDE
--.endfunc
--
--.endm
--
--generate_bilinear_scanline_func_src_dst \
-- pixman_scaled_bilinear_scanline_8888_8888_OVER_asm_neon, \
-- 8888, 8888, over, 2, 28
--
--generate_bilinear_scanline_func_src_dst \
-- pixman_scaled_bilinear_scanline_8888_8888_ADD_asm_neon, \
-- 8888, 8888, add, 2, 28
--
--generate_bilinear_scanline_func_src_a8_dst \
-- pixman_scaled_bilinear_scanline_8888_8_8888_SRC_asm_neon, \
-- 8888, 8888, src, 2, 28
--
--generate_bilinear_scanline_func_src_a8_dst \
-- pixman_scaled_bilinear_scanline_8888_8_0565_SRC_asm_neon, \
-- 8888, 0565, src, 2, 28
--
--generate_bilinear_scanline_func_src_a8_dst \
-- pixman_scaled_bilinear_scanline_0565_8_x888_SRC_asm_neon, \
-- 0565, 8888, src, 1, 28
--
--generate_bilinear_scanline_func_src_a8_dst \
-- pixman_scaled_bilinear_scanline_0565_8_0565_SRC_asm_neon, \
-- 0565, 0565, src, 1, 28
--
--generate_bilinear_scanline_func_src_a8_dst \
-- pixman_scaled_bilinear_scanline_8888_8_8888_OVER_asm_neon, \
-- 8888, 8888, over, 2, 28
--
--generate_bilinear_scanline_func_src_a8_dst \
-- pixman_scaled_bilinear_scanline_8888_8_8888_ADD_asm_neon, \
-- 8888, 8888, add, 2, 28
--
- .set BILINEAR_FLAG_USE_MASK, 1
- .set BILINEAR_FLAG_USE_ALL_NEON_REGS, 2
-
-@@ -855,6 +663,8 @@ pixman_asm_function fname
- TMP4 .req r10
- STRIDE .req r3
-
-+ .set prefetch_offset, prefetch_distance
-+
- mov ip, sp
- push {r4, r5, r6, r7, r8, r9, r10, ip}
- mov PF_OFFS, #prefetch_distance
-@@ -968,3 +778,293 @@ pixman_asm_function fname
- .endfunc
-
- .endm
-+
-+/* src_8888_8_8888 */
-+.macro bilinear_src_8888_8_8888_process_last_pixel
-+ bilinear_interpolate_last_pixel 8888, 8, 8888, src
-+.endm
-+
-+.macro bilinear_src_8888_8_8888_process_two_pixels
-+ bilinear_interpolate_two_pixels 8888, 8, 8888, src
-+.endm
-+
-+.macro bilinear_src_8888_8_8888_process_four_pixels
-+ bilinear_interpolate_four_pixels 8888, 8, 8888, src
-+.endm
-+
-+.macro bilinear_src_8888_8_8888_process_pixblock_head
-+ bilinear_src_8888_8_8888_process_four_pixels
-+.endm
-+
-+.macro bilinear_src_8888_8_8888_process_pixblock_tail
-+.endm
-+
-+.macro bilinear_src_8888_8_8888_process_pixblock_tail_head
-+ bilinear_src_8888_8_8888_process_pixblock_tail
-+ bilinear_src_8888_8_8888_process_pixblock_head
-+.endm
-+
-+/* src_8888_8_0565 */
-+.macro bilinear_src_8888_8_0565_process_last_pixel
-+ bilinear_interpolate_last_pixel 8888, 8, 0565, src
-+.endm
-+
-+.macro bilinear_src_8888_8_0565_process_two_pixels
-+ bilinear_interpolate_two_pixels 8888, 8, 0565, src
-+.endm
-+
-+.macro bilinear_src_8888_8_0565_process_four_pixels
-+ bilinear_interpolate_four_pixels 8888, 8, 0565, src
-+.endm
-+
-+.macro bilinear_src_8888_8_0565_process_pixblock_head
-+ bilinear_src_8888_8_0565_process_four_pixels
-+.endm
-+
-+.macro bilinear_src_8888_8_0565_process_pixblock_tail
-+.endm
-+
-+.macro bilinear_src_8888_8_0565_process_pixblock_tail_head
-+ bilinear_src_8888_8_0565_process_pixblock_tail
-+ bilinear_src_8888_8_0565_process_pixblock_head
-+.endm
-+
-+/* src_0565_8_x888 */
-+.macro bilinear_src_0565_8_x888_process_last_pixel
-+ bilinear_interpolate_last_pixel 0565, 8, 8888, src
-+.endm
-+
-+.macro bilinear_src_0565_8_x888_process_two_pixels
-+ bilinear_interpolate_two_pixels 0565, 8, 8888, src
-+.endm
-+
-+.macro bilinear_src_0565_8_x888_process_four_pixels
-+ bilinear_interpolate_four_pixels 0565, 8, 8888, src
-+.endm
-+
-+.macro bilinear_src_0565_8_x888_process_pixblock_head
-+ bilinear_src_0565_8_x888_process_four_pixels
-+.endm
-+
-+.macro bilinear_src_0565_8_x888_process_pixblock_tail
-+.endm
-+
-+.macro bilinear_src_0565_8_x888_process_pixblock_tail_head
-+ bilinear_src_0565_8_x888_process_pixblock_tail
-+ bilinear_src_0565_8_x888_process_pixblock_head
-+.endm
-+
-+/* src_0565_8_0565 */
-+.macro bilinear_src_0565_8_0565_process_last_pixel
-+ bilinear_interpolate_last_pixel 0565, 8, 0565, src
-+.endm
-+
-+.macro bilinear_src_0565_8_0565_process_two_pixels
-+ bilinear_interpolate_two_pixels 0565, 8, 0565, src
-+.endm
-+
-+.macro bilinear_src_0565_8_0565_process_four_pixels
-+ bilinear_interpolate_four_pixels 0565, 8, 0565, src
-+.endm
-+
-+.macro bilinear_src_0565_8_0565_process_pixblock_head
-+ bilinear_src_0565_8_0565_process_four_pixels
-+.endm
-+
-+.macro bilinear_src_0565_8_0565_process_pixblock_tail
-+.endm
-+
-+.macro bilinear_src_0565_8_0565_process_pixblock_tail_head
-+ bilinear_src_0565_8_0565_process_pixblock_tail
-+ bilinear_src_0565_8_0565_process_pixblock_head
-+.endm
-+
-+/* over_8888_8888 */
-+.macro bilinear_over_8888_8888_process_last_pixel
-+ bilinear_interpolate_last_pixel 8888, x, 8888, over
-+.endm
-+
-+.macro bilinear_over_8888_8888_process_two_pixels
-+ bilinear_interpolate_two_pixels 8888, x, 8888, over
-+.endm
-+
-+.macro bilinear_over_8888_8888_process_four_pixels
-+ bilinear_interpolate_four_pixels 8888, x, 8888, over
-+.endm
-+
-+.macro bilinear_over_8888_8888_process_pixblock_head
-+ bilinear_over_8888_8888_process_four_pixels
-+.endm
-+
-+.macro bilinear_over_8888_8888_process_pixblock_tail
-+.endm
-+
-+.macro bilinear_over_8888_8888_process_pixblock_tail_head
-+ bilinear_over_8888_8888_process_pixblock_tail
-+ bilinear_over_8888_8888_process_pixblock_head
-+.endm
-+
-+/* over_8888_8_8888 */
-+.macro bilinear_over_8888_8_8888_process_last_pixel
-+ bilinear_interpolate_last_pixel 8888, 8, 8888, over
-+.endm
-+
-+.macro bilinear_over_8888_8_8888_process_two_pixels
-+ bilinear_interpolate_two_pixels 8888, 8, 8888, over
-+.endm
-+
-+.macro bilinear_over_8888_8_8888_process_four_pixels
-+ bilinear_interpolate_four_pixels 8888, 8, 8888, over
-+.endm
-+
-+.macro bilinear_over_8888_8_8888_process_pixblock_head
-+ bilinear_over_8888_8_8888_process_four_pixels
-+.endm
-+
-+.macro bilinear_over_8888_8_8888_process_pixblock_tail
-+.endm
-+
-+.macro bilinear_over_8888_8_8888_process_pixblock_tail_head
-+ bilinear_over_8888_8_8888_process_pixblock_tail
-+ bilinear_over_8888_8_8888_process_pixblock_head
-+.endm
-+
-+/* add_8888_8888 */
-+.macro bilinear_add_8888_8888_process_last_pixel
-+ bilinear_interpolate_last_pixel 8888, x, 8888, add
-+.endm
-+
-+.macro bilinear_add_8888_8888_process_two_pixels
-+ bilinear_interpolate_two_pixels 8888, x, 8888, add
-+.endm
-+
-+.macro bilinear_add_8888_8888_process_four_pixels
-+ bilinear_interpolate_four_pixels 8888, x, 8888, add
-+.endm
-+
-+.macro bilinear_add_8888_8888_process_pixblock_head
-+ bilinear_add_8888_8888_process_four_pixels
-+.endm
-+
-+.macro bilinear_add_8888_8888_process_pixblock_tail
-+.endm
-+
-+.macro bilinear_add_8888_8888_process_pixblock_tail_head
-+ bilinear_add_8888_8888_process_pixblock_tail
-+ bilinear_add_8888_8888_process_pixblock_head
-+.endm
-+
-+/* add_8888_8_8888 */
-+.macro bilinear_add_8888_8_8888_process_last_pixel
-+ bilinear_interpolate_last_pixel 8888, 8, 8888, add
-+.endm
-+
-+.macro bilinear_add_8888_8_8888_process_two_pixels
-+ bilinear_interpolate_two_pixels 8888, 8, 8888, add
-+.endm
-+
-+.macro bilinear_add_8888_8_8888_process_four_pixels
-+ bilinear_interpolate_four_pixels 8888, 8, 8888, add
-+.endm
-+
-+.macro bilinear_add_8888_8_8888_process_pixblock_head
-+ bilinear_add_8888_8_8888_process_four_pixels
-+.endm
-+
-+.macro bilinear_add_8888_8_8888_process_pixblock_tail
-+.endm
-+
-+.macro bilinear_add_8888_8_8888_process_pixblock_tail_head
-+ bilinear_add_8888_8_8888_process_pixblock_tail
-+ bilinear_add_8888_8_8888_process_pixblock_head
-+.endm
-+
-+
-+/* Bilinear scanline functions */
-+generate_bilinear_scanline_func \
-+ pixman_scaled_bilinear_scanline_8888_8_8888_SRC_asm_neon, \
-+ 8888, 8888, 2, 2, \
-+ bilinear_src_8888_8_8888_process_last_pixel, \
-+ bilinear_src_8888_8_8888_process_two_pixels, \
-+ bilinear_src_8888_8_8888_process_four_pixels, \
-+ bilinear_src_8888_8_8888_process_pixblock_head, \
-+ bilinear_src_8888_8_8888_process_pixblock_tail, \
-+ bilinear_src_8888_8_8888_process_pixblock_tail_head, \
-+ 4, 28, BILINEAR_FLAG_USE_MASK
-+
-+generate_bilinear_scanline_func \
-+ pixman_scaled_bilinear_scanline_8888_8_0565_SRC_asm_neon, \
-+ 8888, 0565, 2, 1, \
-+ bilinear_src_8888_8_0565_process_last_pixel, \
-+ bilinear_src_8888_8_0565_process_two_pixels, \
-+ bilinear_src_8888_8_0565_process_four_pixels, \
-+ bilinear_src_8888_8_0565_process_pixblock_head, \
-+ bilinear_src_8888_8_0565_process_pixblock_tail, \
-+ bilinear_src_8888_8_0565_process_pixblock_tail_head, \
-+ 4, 28, BILINEAR_FLAG_USE_MASK
-+
-+generate_bilinear_scanline_func \
-+ pixman_scaled_bilinear_scanline_0565_8_x888_SRC_asm_neon, \
-+ 0565, 8888, 1, 2, \
-+ bilinear_src_0565_8_x888_process_last_pixel, \
-+ bilinear_src_0565_8_x888_process_two_pixels, \
-+ bilinear_src_0565_8_x888_process_four_pixels, \
-+ bilinear_src_0565_8_x888_process_pixblock_head, \
-+ bilinear_src_0565_8_x888_process_pixblock_tail, \
-+ bilinear_src_0565_8_x888_process_pixblock_tail_head, \
-+ 4, 28, BILINEAR_FLAG_USE_MASK
-+
-+generate_bilinear_scanline_func \
-+ pixman_scaled_bilinear_scanline_0565_8_0565_SRC_asm_neon, \
-+ 0565, 0565, 1, 1, \
-+ bilinear_src_0565_8_0565_process_last_pixel, \
-+ bilinear_src_0565_8_0565_process_two_pixels, \
-+ bilinear_src_0565_8_0565_process_four_pixels, \
-+ bilinear_src_0565_8_0565_process_pixblock_head, \
-+ bilinear_src_0565_8_0565_process_pixblock_tail, \
-+ bilinear_src_0565_8_0565_process_pixblock_tail_head, \
-+ 4, 28, BILINEAR_FLAG_USE_MASK
-+
-+generate_bilinear_scanline_func \
-+ pixman_scaled_bilinear_scanline_8888_8888_OVER_asm_neon, \
-+ 8888, 8888, 2, 2, \
-+ bilinear_over_8888_8888_process_last_pixel, \
-+ bilinear_over_8888_8888_process_two_pixels, \
-+ bilinear_over_8888_8888_process_four_pixels, \
-+ bilinear_over_8888_8888_process_pixblock_head, \
-+ bilinear_over_8888_8888_process_pixblock_tail, \
-+ bilinear_over_8888_8888_process_pixblock_tail_head, \
-+ 4, 28, 0
-+
-+generate_bilinear_scanline_func \
-+ pixman_scaled_bilinear_scanline_8888_8_8888_OVER_asm_neon, \
-+ 8888, 8888, 2, 2, \
-+ bilinear_over_8888_8_8888_process_last_pixel, \
-+ bilinear_over_8888_8_8888_process_two_pixels, \
-+ bilinear_over_8888_8_8888_process_four_pixels, \
-+ bilinear_over_8888_8_8888_process_pixblock_head, \
-+ bilinear_over_8888_8_8888_process_pixblock_tail, \
-+ bilinear_over_8888_8_8888_process_pixblock_tail_head, \
-+ 4, 28, BILINEAR_FLAG_USE_MASK
-+
-+generate_bilinear_scanline_func \
-+ pixman_scaled_bilinear_scanline_8888_8888_ADD_asm_neon, \
-+ 8888, 8888, 2, 2, \
-+ bilinear_add_8888_8888_process_last_pixel, \
-+ bilinear_add_8888_8888_process_two_pixels, \
-+ bilinear_add_8888_8888_process_four_pixels, \
-+ bilinear_add_8888_8888_process_pixblock_head, \
-+ bilinear_add_8888_8888_process_pixblock_tail, \
-+ bilinear_add_8888_8888_process_pixblock_tail_head, \
-+ 4, 28, 0
-+
-+generate_bilinear_scanline_func \
-+ pixman_scaled_bilinear_scanline_8888_8_8888_ADD_asm_neon, \
-+ 8888, 8888, 2, 2, \
-+ bilinear_add_8888_8_8888_process_last_pixel, \
-+ bilinear_add_8888_8_8888_process_two_pixels, \
-+ bilinear_add_8888_8_8888_process_four_pixels, \
-+ bilinear_add_8888_8_8888_process_pixblock_head, \
-+ bilinear_add_8888_8_8888_process_pixblock_tail, \
-+ bilinear_add_8888_8_8888_process_pixblock_tail_head, \
-+ 4, 28, BILINEAR_FLAG_USE_MASK
---
-1.6.6.1
-