⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 libmpeg-0.4.1.diff

📁 君正早期ucos系统(只有早期的才不没有打包成库),MPLAYER,文件系统,图片解码,浏览,电子书,录音,想学ucos,识货的人就下吧 russblock fmradio explore set
💻 DIFF
📖 第 1 页 / 共 3 页
字号:
+	bne MC_put_o_16_arm_align0+        ldmfd sp!, {r4-r11, pc} @@ update PC with LR content.++.macro	PROC shift+	ldmia r1, {r4-r8}+	add r1, r1, r2+	mov r9, r4, lsr #(\shift)+	pld [r1]+	mov r10, r5, lsr #(\shift)+	orr r9, r9, r5, lsl #(32-\shift)+	mov r11, r6, lsr #(\shift)+	orr r10, r10, r6, lsl #(32-\shift)+	mov r12, r7, lsr #(\shift)+	orr r11, r11, r7, lsl #(32-\shift)+	orr r12, r12, r8, lsl #(32-\shift)+	stmia r0, {r9-r12}+	subs r3, r3, #1+	add r0, r0, r2+.endm++MC_put_o_16_arm_align1:+	and r1, r1, #0xFFFFFFFC+1:	PROC(8)+	bne 1b+        ldmfd sp!, {r4-r11, pc} @@ update PC with LR content.+MC_put_o_16_arm_align2:+	and r1, r1, #0xFFFFFFFC+1:	PROC(16)+	bne 1b+        ldmfd sp!, {r4-r11, pc} @@ update PC with LR content.+MC_put_o_16_arm_align3:+	and r1, r1, #0xFFFFFFFC+1:	PROC(24)+	bne 1b+        ldmfd sp!, {r4-r11, pc} @@ update PC with LR content.+MC_put_o_16_arm_align_jt:+	.word MC_put_o_16_arm_align0+	.word MC_put_o_16_arm_align1+	.word MC_put_o_16_arm_align2+	.word MC_put_o_16_arm_align3++@ ----------------------------------------------------------------+	.align+	.global MC_put_o_8_arm+MC_put_o_8_arm:+	@@ void func(uint8_t * dest, const uint8_t * ref, int stride, int height)+	pld [r1]+        stmfd sp!, {r4-r10, lr} @ R14 is also called LR+	and r4, r1, #3+	adr r5, MC_put_o_8_arm_align_jt+	add r5, r5, r4, lsl #2+	ldr pc, [r5]+MC_put_o_8_arm_align0:+	ldmia r1, {r4-r5}+	add r1, r1, r2+	pld [r1]+	stmia r0, {r4-r5}+	add r0, r0, r2+	subs r3, r3, #1+	bne MC_put_o_8_arm_align0+        ldmfd sp!, {r4-r10, pc} @@ update PC with LR content.++.macro	PROC8 shift+	ldmia r1, {r4-r6}+	add r1, r1, r2+	mov r9, r4, lsr #(\shift)+	pld [r1]+	mov r10, r5, lsr #(\shift)+	orr r9, r9, r5, lsl #(32-\shift)+	orr r10, r10, r6, lsl #(32-\shift)+	stmia r0, {r9-r10}+	subs r3, r3, #1+	add r0, r0, r2+.endm++MC_put_o_8_arm_align1:+	and r1, r1, #0xFFFFFFFC+1:	PROC8(8)+	bne 1b+        ldmfd sp!, {r4-r10, pc} @@ update PC with LR content.++MC_put_o_8_arm_align2:+	and r1, r1, #0xFFFFFFFC+1:	PROC8(16)+	bne 1b+        ldmfd sp!, {r4-r10, pc} @@ update PC with LR content.++MC_put_o_8_arm_align3:+	and r1, r1, #0xFFFFFFFC+1:	PROC8(24)+	bne 1b+        ldmfd sp!, {r4-r10, pc} @@ update PC with LR content.++MC_put_o_8_arm_align_jt:+	.word MC_put_o_8_arm_align0+	.word MC_put_o_8_arm_align1+	.word MC_put_o_8_arm_align2+	.word MC_put_o_8_arm_align3++@ ----------------------------------------------------------------+.macro	AVG_PW rW1, rW2+	mov \rW2, \rW2, lsl #24+	orr \rW2, \rW2, \rW1, lsr #8+	eor r9, \rW1, \rW2+	and \rW2, \rW1, \rW2+	and r10, r9, r12+	add \rW2, \rW2, r10, lsr #1+	and r10, r9, r11+	add \rW2, \rW2, r10+.endm++	.align+	.global MC_put_x_16_arm+MC_put_x_16_arm:+	@@ void func(uint8_t * dest, const uint8_t * ref, int stride, int height)+	pld [r1]+        stmfd sp!, {r4-r11,lr} @ R14 is also called LR+	and r4, r1, #3+	adr r5, MC_put_x_16_arm_align_jt+	ldr r11, [r5]+	mvn r12, r11+	add r5, r5, r4, lsl #2+	ldr pc, [r5, #4]++.macro	ADJ_ALIGN_QW shift, R0, R1, R2, R3, R4+	mov \R0, \R0, lsr #(\shift)+	orr \R0, \R0, \R1, lsl #(32 - \shift)+	mov \R1, \R1, lsr #(\shift)+	orr \R1, \R1, \R2, lsl #(32 - \shift)+	mov \R2, \R2, lsr #(\shift)+	orr \R2, \R2, \R3, lsl #(32 - \shift)+	mov \R3, \R3, lsr #(\shift)+	orr \R3, \R3, \R4, lsl #(32 - \shift)+	mov \R4, \R4, lsr #(\shift)+@	and \R4, \R4, #0xFF+.endm++MC_put_x_16_arm_align0:+	ldmia r1, {r4-r8}+	add r1, r1, r2+	pld [r1]+	AVG_PW r7, r8+	AVG_PW r6, r7+	AVG_PW r5, r6+	AVG_PW r4, r5+	stmia r0, {r5-r8}+	subs r3, r3, #1+	add r0, r0, r2+	bne MC_put_x_16_arm_align0+        ldmfd sp!, {r4-r11,pc} @@ update PC with LR content.+MC_put_x_16_arm_align1:+	and r1, r1, #0xFFFFFFFC+1:	ldmia r1, {r4-r8}+	add r1, r1, r2+	pld [r1]+	ADJ_ALIGN_QW 8, r4, r5, r6, r7, r8+	AVG_PW r7, r8+	AVG_PW r6, r7+	AVG_PW r5, r6+	AVG_PW r4, r5+	stmia r0, {r5-r8}+	subs r3, r3, #1+	add r0, r0, r2+	bne 1b+        ldmfd sp!, {r4-r11,pc} @@ update PC with LR content.+MC_put_x_16_arm_align2:+	and r1, r1, #0xFFFFFFFC+1:	ldmia r1, {r4-r8}+	add r1, r1, r2+	pld [r1]+	ADJ_ALIGN_QW 16, r4, r5, r6, r7, r8+	AVG_PW r7, r8+	AVG_PW r6, r7+	AVG_PW r5, r6+	AVG_PW r4, r5+	stmia r0, {r5-r8}+	subs r3, r3, #1+	add r0, r0, r2+	bne 1b+        ldmfd sp!, {r4-r11,pc} @@ update PC with LR content.+MC_put_x_16_arm_align3:+	and r1, r1, #0xFFFFFFFC+1:	ldmia r1, {r4-r8}+	add r1, r1, r2+	pld [r1]+	ADJ_ALIGN_QW 24, r4, r5, r6, r7, r8+	AVG_PW r7, r8+	AVG_PW r6, r7+	AVG_PW r5, r6+	AVG_PW r4, r5+	stmia r0, {r5-r8}+	subs r3, r3, #1+	add r0, r0, r2+	bne 1b+        ldmfd sp!, {r4-r11,pc} @@ update PC with LR content.+MC_put_x_16_arm_align_jt:+	.word 0x01010101+	.word MC_put_x_16_arm_align0+	.word MC_put_x_16_arm_align1+	.word MC_put_x_16_arm_align2+	.word MC_put_x_16_arm_align3++@ ----------------------------------------------------------------+	.align+	.global MC_put_x_8_arm+MC_put_x_8_arm:+	@@ void func(uint8_t * dest, const uint8_t * ref, int stride, int height)+	pld [r1]+        stmfd sp!, {r4-r11,lr} @ R14 is also called LR+	and r4, r1, #3+	adr r5, MC_put_x_8_arm_align_jt+	ldr r11, [r5]+	mvn r12, r11+	add r5, r5, r4, lsl #2+	ldr pc, [r5, #4]++.macro	ADJ_ALIGN_DW shift, R0, R1, R2+	mov \R0, \R0, lsr #(\shift)+	orr \R0, \R0, \R1, lsl #(32 - \shift)+	mov \R1, \R1, lsr #(\shift)+	orr \R1, \R1, \R2, lsl #(32 - \shift)+	mov \R2, \R2, lsr #(\shift)+@	and \R4, \R4, #0xFF+.endm++MC_put_x_8_arm_align0:+	ldmia r1, {r4-r6}+	add r1, r1, r2+	pld [r1]+	AVG_PW r5, r6+	AVG_PW r4, r5+	stmia r0, {r5-r6}+	subs r3, r3, #1+	add r0, r0, r2+	bne MC_put_x_8_arm_align0+        ldmfd sp!, {r4-r11,pc} @@ update PC with LR content.+MC_put_x_8_arm_align1:+	and r1, r1, #0xFFFFFFFC+1:	ldmia r1, {r4-r6}+	add r1, r1, r2+	pld [r1]+	ADJ_ALIGN_DW 8, r4, r5, r6+	AVG_PW r5, r6+	AVG_PW r4, r5+	stmia r0, {r5-r6}+	subs r3, r3, #1+	add r0, r0, r2+	bne 1b+        ldmfd sp!, {r4-r11,pc} @@ update PC with LR content.+MC_put_x_8_arm_align2:+	and r1, r1, #0xFFFFFFFC+1:	ldmia r1, {r4-r6}+	add r1, r1, r2+	pld [r1]+	ADJ_ALIGN_DW 16, r4, r5, r6+	AVG_PW r5, r6+	AVG_PW r4, r5+	stmia r0, {r5-r6}+	subs r3, r3, #1+	add r0, r0, r2+	bne 1b+        ldmfd sp!, {r4-r11,pc} @@ update PC with LR content.+MC_put_x_8_arm_align3:+	and r1, r1, #0xFFFFFFFC+1:	ldmia r1, {r4-r6}+	add r1, r1, r2+	pld [r1]+	ADJ_ALIGN_DW 24, r4, r5, r6+	AVG_PW r5, r6+	AVG_PW r4, r5+	stmia r0, {r5-r6}+	subs r3, r3, #1+	add r0, r0, r2+	bne 1b+        ldmfd sp!, {r4-r11,pc} @@ update PC with LR content.+MC_put_x_8_arm_align_jt:+	.word 0x01010101+	.word MC_put_x_8_arm_align0+	.word MC_put_x_8_arm_align1+	.word MC_put_x_8_arm_align2+	.word MC_put_x_8_arm_align3Index: libmpeg2/motion_comp_iwmmxt.c===================================================================--- libmpeg2/motion_comp_iwmmxt.c	(revision 0)+++ libmpeg2/motion_comp_iwmmxt.c	(revision 0)@@ -0,0 +1,61 @@+/*+ * motion_comp_iwmmxt.c+ * Copyright (C) 2004 AGAWA Koji <i (AT) atty (DOT) jp>+ *+ * This file is part of mpeg2dec, a free MPEG-2 video stream decoder.+ * See http://libmpeg2.sourceforge.net/ for updates.+ *+ * mpeg2dec is free software; you can redistribute it and/or modify+ * it under the terms of the GNU General Public License as published by+ * the Free Software Foundation; either version 2 of the License, or+ * (at your option) any later version.+ *+ * mpeg2dec is distributed in the hope that it will be useful,+ * but WITHOUT ANY WARRANTY; without even the implied warranty of+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the+ * GNU General Public License for more details.+ *+ * You should have received a copy of the GNU General Public License+ * along with this program; if not, write to the Free Software+ * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA+ */++#include "config.h"++#ifdef ARCH_ARM+#ifdef HAVE_IWMMXT++#include <inttypes.h>++#include "mpeg2.h"+#include "attributes.h"+#include "mpeg2_internal.h"++/* defined in libavcodec */++extern void put_pixels16_iwmmxt(uint8_t * dest, const uint8_t * ref, const int stride, int height);+extern void put_pixels16_x2_iwmmxt(uint8_t * dest, const uint8_t * ref, const int stride, int height);+extern void put_pixels16_y2_iwmmxt(uint8_t * dest, const uint8_t * ref, const int stride, int height);+extern void put_pixels16_xy2_iwmmxt(uint8_t * dest, const uint8_t * ref, const int stride, int height);+extern void put_pixels8_iwmmxt(uint8_t * dest, const uint8_t * ref, const int stride, int height);+extern void put_pixels8_x2_iwmmxt(uint8_t * dest, const uint8_t * ref, const int stride, int height);+extern void put_pixels8_y2_iwmmxt(uint8_t * dest, const uint8_t * ref, const int stride, int height);+extern void put_pixels8_xy2_iwmmxt(uint8_t * dest, const uint8_t * ref, const int stride, int height);+extern void avg_pixels16_iwmmxt(uint8_t * dest, const uint8_t * ref, const int stride, int height);+extern void avg_pixels16_x2_iwmmxt(uint8_t * dest, const uint8_t * ref, const int stride, int height);+extern void avg_pixels16_y2_iwmmxt(uint8_t * dest, const uint8_t * ref, const int stride, int height);+extern void avg_pixels16_xy2_iwmmxt(uint8_t * dest, const uint8_t * ref, const int stride, int height);+extern void avg_pixels8_iwmmxt(uint8_t * dest, const uint8_t * ref, const int stride, int height);+extern void avg_pixels8_x2_iwmmxt(uint8_t * dest, const uint8_t * ref, const int stride, int height);+extern void avg_pixels8_y2_iwmmxt(uint8_t * dest, const uint8_t * ref, const int stride, int height);+extern void avg_pixels8_xy2_iwmmxt(uint8_t * dest, const uint8_t * ref, const int stride, int height);++mpeg2_mc_t mpeg2_mc_iwmmxt = {+    {put_pixels16_iwmmxt, put_pixels16_x2_iwmmxt, put_pixels16_y2_iwmmxt, put_pixels16_xy2_iwmmxt,+     put_pixels8_iwmmxt, put_pixels8_x2_iwmmxt,  put_pixels8_y2_iwmmxt,  put_pixels8_xy2_iwmmxt}, \+    {avg_pixels16_iwmmxt, avg_pixels16_x2_iwmmxt, avg_pixels16_y2_iwmmxt, avg_pixels16_xy2_iwmmxt,+     avg_pixels8_iwmmxt, avg_pixels8_x2_iwmmxt,  avg_pixels8_y2_iwmmxt,  avg_pixels8_xy2_iwmmxt}, \+};++#endif+#endifIndex: libmpeg2/Makefile===================================================================--- libmpeg2/Makefile	(revision 23253)+++ libmpeg2/Makefile	(working copy)@@ -15,5 +15,6 @@ SRCS_COMMON-$(TARGET_MMX)        += idct_mmx.c motion_comp_mmx.c SRCS_COMMON-$(TARGET_ALTIVEC)    += motion_comp_altivec.c idct_altivec.c SRCS_COMMON-$(TARGET_VIS)        += motion_comp_vis.c-SRCS_COMMON-$(TARGET_ARCH_ALPHA) += idct_alpha.c motion_comp_alpha.c+SRCS_COMMON-$(ARCH_ALPHA)        += idct_alpha.c motion_comp_alpha.c+SRCS_COMMON-$(ARCH_ARMV4L)       += motion_comp_arm.c motion_comp_iwmmxt.c motion_comp_arm_s.S  include ../mpcommon.mak

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -