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

📄 jidctint.c

📁 jpeg编解码器
💻 C
📖 第 1 页 / 共 5 页
字号:
	paddw		mm3, [eax + 8*24]		;p2(9,0)	paddw		mm5, mm2					;p2(5,1)	movq		mm2, [esi + 8*2]		;p2(7,0)	paddw		mm5, mm4					;p2(5,2)	pmulhw		mm2, fix_n039			;p2(7,1)	movq		[esi + 8*1], mm5			;p2(5,3)	movq		mm4, [esi + 8*6]	;p2(8,0)	movq		mm5, mm6			;p2(10,0)	pmulhw		mm4, fix_n256		;p2(8,1)	pmulhw		mm5, fix_n039		;p2(10,1)	pmulhw		mm6, fix_n256			;p2(15,0)	paddw		mm2, mm4				;p2(9,1)	movq		mm4, mm7			;p2(11,0)		pmulhw		mm4, fix_n089		;p2(11,1)	paddw		mm2, mm3				;p2(9,2)		movq		[esi + 8*3], mm2		;p2(9,3)	movq		mm3, [esi + 8*2]		;p2(13,0)	pmulhw		mm7, fix_n196			;p2(16,0)	pmulhw		mm3, fix_n089n039p150	;p2(13,1)	paddw		mm5, mm4			;p2(12,0)	paddw		mm5, [eax + 8*24]		;p2(14,0)	movq		mm2, [esi + 8*6]		;p2(18,0)	pmulhw		mm2, fix_n196p307n256	;p2(18,1)	paddw		mm5, mm3				;p2(14,1)	movq		[esi + 8*5], mm5		;p2(14,2)	paddw		mm6, mm7				;p2(17,0)	paddw		mm6, [eax + 8*24]		;p2(19,0)	movq		mm3, mm1				;p2(21,0)	movq		mm4, [esi + 8*4]		;p2(20,0)	paddw		mm6, mm2				;p2(19,1)	movq		[esi + 8*7], mm6		;p2(19,2)		movq		mm5, mm4				;p2(20,1)	movq		mm7, [esi + 8*0]		;p2(26,0)	pmulhw		mm4, fix_054p076		;p2(20,2)		psubw		mm7, mm0				;p2(27,0)	pmulhw		mm3, fix_054			;p2(21,1)	movq		mm2, mm0				;p2(26,1)	pmulhw		mm5, fix_054			;p2(23,0)	psraw		mm7, 3					;p2(27,1)	paddw		mm2, [esi + 8*0]		;p2(26,2)	movq		mm6, mm7				;p2(28,0)	pmulhw		mm1, fix_054n184		;p2(24,0)	psraw		mm2, 3					;p2(26,3)				paddw		mm4, mm3				;p2(22,0)		paddw		mm5, mm1				;p2(25,0)	psubw		mm6, mm5				;p2(29,0)		movq		mm3, mm2				;p2(30,0)	paddw		mm2, mm4				;p2(30,1)			paddw		mm7, mm5				;p2(28,1)				movq		mm1, mm2				;p2(32,0)	psubw		mm3, mm4				;p2(31,0)			paddw		mm1, [esi + 8*5]		;p2(32,1)	movq		mm0, mm7				;p2(33,0)	psubw		mm2, [esi + 8*5]		;p2(32,2)	movq		mm4, mm6				;p2(34,0)		paddw		mm1, const_0x0808		;p2(32,3)		paddw		mm2, const_0x0808		;p2(32,4)	psraw		mm1, 4					;p2(32,5)	psraw		mm2, 4					;p2(32,6)	paddw		mm7, [esi + 8*7]		;p2(33,1)	packuswb	mm1, mm2				;p2(32,7)	psubw		mm0, [esi + 8*7]		;p2(33,2)	paddw		mm7, const_0x0808		;p2(33,3)	paddw		mm0, const_0x0808		;p2(33,4)	psraw		mm7, 4					;p2(33,5)		psraw		mm0, 4					;p2(33,6)	paddw		mm4, [esi + 8*3]		;p2(34,1)	packuswb	mm7, mm0				;p2(33,7)	psubw		mm6, [esi + 8*3]		;p2(34,2)	paddw		mm4, const_0x0808		;p2(34,3)	movq		mm5, mm3				;p2(35,0)		paddw		mm6, const_0x0808		;p2(34,4)	psraw		mm4, 4					;p2(34,5)		psraw		mm6, 4					;p2(34,6)	paddw		mm3, [esi + 8*1]		;p2(35,1)	packuswb	mm4, mm6				;p2(34,7)	psubw		mm5, [esi + 8*1]		;p2(35,2)	movq		mm0, mm1				;p2(36,0)	paddw		mm3, const_0x0808		;p2(35,3)		paddw		mm5, const_0x0808		;p2(35,4)	punpcklbw	mm0, mm7				;p2(36,1)	psraw		mm3, 4					;p2(35,5)	movq		mm2, mm4				;p2(37,0)	psraw		mm5, 4					;p2(35,6)	movq		mm6, mm0				;p2(38,0)		packuswb	mm3, mm5				;p2(35,7)	mov			ebx, [edi]				;p2(42,0)	punpckhbw	mm7, mm1				;p2(36,2)	mov			ecx, [edi+4]			;p2(42,1)	punpcklbw	mm2, mm3				;p2(37,1)		mov			edx, [edi+8]			;p2(42,2)	punpckhbw	mm3, mm4				;p2(37,2)		add			ebx, output_col			;p2(42,3)	punpcklwd	mm0, mm2				;p2(38,1)		movq		mm5, mm3				;p2(39,0)		punpckhwd	mm6, mm2				;p2(38,2)		movq		mm1, mm0				;p2(40,0)	punpcklwd	mm3, mm7				;p2(39,1)		add			ecx, output_col			;p2(42,4)	add			edx, output_col			;p2(42,5)	punpckldq	mm0, mm3				;p2(40,1)		punpckhdq	mm1, mm3				;p2(40,2)		movq		[ebx], mm0				;p2(43,0)		punpckhwd	mm5, mm7				;p2(39,2)		movq		[ecx], mm1				;p2(43,1)		movq		mm4, mm6				;p2(41,0)	mov			ebx, [edi+12]			;p2(43,3)	punpckldq	mm4, mm5				;p2(41,1)		add			ebx, output_col			;p2(43,4)	punpckhdq	mm6, mm5				;p2(41,2)		movq		[edx], mm4				;p2(43,2)			movq		[ebx], mm6				;p2(43,5)//************************************************************************	emms	}#endif#if defined(HAVE_MMX_ATT_MNEMONICS)         __asm__ (        "pushl           %%ebx\n\t"        "movl            %0, %%edi \n\t"        "movl            %1, %%ebx \n\t"        "movl            %2, %%esi \n\t"        "addl            $0x07,%%esi \n\t"      //align wsptr to qword        "andl            $0xfffffff8,%%esi \n\t" //align wsptr to qword        "movl            %%esi,%%eax \n\t"        /* Pass 1. */        "movq            8*4(%%ebx),%%mm0 \n\t" //p1(1,0)        "pmullw          8*4(%%edi),%%mm0 \n\t" //p1(1,1)    "movq                8*12(%%ebx),%%mm1 \n\t" //p1(2,0)        "pmullw          8*12(%%edi),%%mm1 \n\t" //p1(2,1)        "movq            8*0(%%ebx),%%mm6 \n\t" //p1(5,0)        "pmullw          8*0(%%edi),%%mm6 \n\t" //p1(5,1)        "movq            %%mm0,%%mm2 \n\t"                      //p1(3,0)        "movq            8*8(%%ebx),%%mm7 \n\t" //p1(6,0)        "punpcklwd       %%mm1,%%mm0 \n\t"                      //p1(3,1)        "pmullw          8*8(%%edi),%%mm7 \n\t" //p1(6,1)        "movq            %%mm0,%%mm4 \n\t"                      //p1(3,2)        "punpckhwd       %%mm1,%%mm2 \n\t"                      //p1(3,4)        "pmaddwd         %5,%%mm0 \n\t" //p1(3,3)        "movq            %%mm2,%%mm5 \n\t"                      //p1(3,5)        "pmaddwd         %5,%%mm2 \n\t" //p1(3,6)        "pxor            %%mm1,%%mm1 \n\t" //p1(7,0)        "pmaddwd         %6,%%mm4 \n\t"   //p1(4,0)        "punpcklwd   %%mm6,%%mm1     \n\t" //p1(7,1)        "pmaddwd         %6,%%mm5 \n\t"   //p1(4,1)        "psrad           $3,%%mm1    \n\t" //p1(7,2)        "pxor            %%mm3,%%mm3 \n\t" //p1(7,3)        "punpcklwd       %%mm7,%%mm3 \n\t" //p1(7,4)        "psrad           $3,%%mm3    \n\t" //p1(7,5)        "paddd           %%mm3,%%mm1 \n\t" //p1(7,6)        "movq            %%mm1,%%mm3 \n\t" //p1(7,7)                "paddd           %%mm4,%%mm1 \n\t" //p1(7,8)        "psubd           %%mm4,%%mm3 \n\t" //p1(7,9)        "movq            %%mm1,8*16(%%esi) \n\t" //p1(7,10)        "pxor            %%mm4,%%mm4 \n\t" //p1(7,12)        "movq            %%mm3,8*22(%%esi) \n\t" //p1(7,11)        "punpckhwd       %%mm6,%%mm4 \n\t" //p1(7,13)        "psrad           $3,%%mm4    \n\t" //p1(7,14)        "pxor            %%mm1,%%mm1 \n\t" //p1(7,15)        "punpckhwd       %%mm7,%%mm1 \n\t" //p1(7,16)        "psrad           $3,%%mm1    \n\t" //p1(7,17)        "paddd           %%mm1,%%mm4 \n\t" //p1(7,18)        "movq            %%mm4,%%mm3 \n\t" //p1(7,19)               "pxor            %%mm1,%%mm1 \n\t" //p1(8,0)        "paddd           %%mm5,%%mm3 \n\t" //p1(7,20)        "punpcklwd       %%mm6,%%mm1 \n\t" //p1(8,1)        "psubd           %%mm5,%%mm4 \n\t" //p1(7,21)        "psrad           $3,%%mm1    \n\t" //p1(8,2)        "movq            %%mm3,8*17(%%esi) \n\t" //p1(7,22)        "pxor            %%mm5,%%mm5 \n\t" //p1(8,3)        "movq            %%mm4,8*23(%%esi) \n\t" //p1(7,23)        "punpcklwd       %%mm7,%%mm5 \n\t" //p1(8,4)        "psrad           $3,%%mm5    \n\t" //p1(8,5)        "pxor            %%mm4,%%mm4 \n\t" //p1(8,12)        "psubd           %%mm5,%%mm1 \n\t" //p1(8,6)                "punpckhwd       %%mm6,%%mm4 \n\t" //p1(8,13)        "movq            %%mm1,%%mm3 \n\t" //p1(8,7)        "psrad           $3,%%mm4    \n\t" //p1(8,14)        "paddd           %%mm0,%%mm1 \n\t" //p1(8,8)        "pxor            %%mm5,%%mm5 \n\t" //p1(8,15)        "psubd           %%mm0,%%mm3 \n\t" //p1(8,9)        "movq            8*14(%%ebx),%%mm0 \n\t" //p1(9,0)        "punpckhwd       %%mm7,%%mm5 \n\t" //p1(8,16)        "pmullw          8*14(%%edi),%%mm0 \n\t" //p1(9,1)        "movq            %%mm1,8*18(%%esi) \n\t" //p1(8,10)        "psrad           $3,%%mm5    \n\t" //p1(8,17)        "movq            %%mm3,8*20(%%esi) \n\t" //p1(8,11)        "psubd           %%mm5,%%mm4 \n\t" //p1(8,18)        "movq            %%mm4,%%mm3 \n\t" //p1(8,19)        "movq            8*6(%%ebx),%%mm1 \n\t" //p1(10,0)        "paddd           %%mm2,%%mm3 \n\t" //p1(8,20)        "pmullw          8*6(%%edi),%%mm1 \n\t" //p1(10,1)        "psubd           %%mm2,%%mm4 \n\t" //p1(8,21)        "movq            %%mm0,%%mm5 \n\t"              //p1(11,1)        "movq            %%mm4,8*21(%%esi) \n\t" //p1(8,23)        "movq            %%mm3,8*19(%%esi) \n\t" //p1(8,22)        "movq            %%mm0,%%mm4 \n\t"              //p1(11,0)        "punpcklwd       %%mm1,%%mm4 \n\t"              //p1(11,2)        "movq            8*10(%%ebx),%%mm2 \n\t" //p1(12,0)        "punpckhwd       %%mm1,%%mm5 \n\t"              //p1(11,4)               "pmullw          8*10(%%edi),%%mm2 \n\t" //p1(12,1)        "movq            8*2(%%ebx),%%mm3 \n\t" //p1(13,0)        "pmullw          8*2(%%edi),%%mm3 \n\t" //p1(13,1)        "movq            %%mm2,%%mm6 \n\t"              //p1(14,0)        "pmaddwd         %7,%%mm4 \n\t" //p1(11,3)        "movq            %%mm2,%%mm7 \n\t"              //p1(14,1)        "pmaddwd         %7,%%mm5 \n\t" //p1(11,5)        "punpcklwd       %%mm3,%%mm6 \n\t"              //p1(14,2)        "pmaddwd         %7,%%mm6 \n\t" //p1(14,3)        "punpckhwd       %%mm3,%%mm7 \n\t"              //p1(14,4)        "pmaddwd         %7,%%mm7 \n\t" //p1(14,5)        "paddd           %%mm6,%%mm4 \n\t"              //p1(15,0)        "paddd           %%mm7,%%mm5 \n\t"              //p1(15,1)        "movq            %%mm4,8*24(%%esi) \n\t" //p1(15,2)        "movq            %%mm5,8*25(%%esi) \n\t" //p1(15,3)        "movq            %%mm0,%%mm6 \n\t"                      //p1(16,0)        "movq            %%mm3,%%mm7 \n\t"                      //p1(16,3)        "punpcklwd       %%mm2,%%mm6 \n\t"                      //p1(16,1)        "punpcklwd       %%mm3,%%mm7 \n\t"                      //p1(16,4)        "pmaddwd         %8,%%mm6 \n\t"     //p1(16,2)        "pmaddwd         %9,%%mm7 \n\t" //p1(16,5)        "movq            %%mm0,%%mm4 \n\t"                      //p1(16,12)        "paddd           8*24(%%esi),%%mm6 \n\t"        //p1(16,6)        "punpckhwd       %%mm2,%%mm4 \n\t"                      //p1(16,13)        "paddd           %%mm7,%%mm6 \n\t"                      //p1(16,7)        "pmaddwd         %8,%%mm4 \n\t"     //p1(16,14)        "movq            %%mm6,%%mm7 \n\t"                      //p1(16,8)        "paddd           8*25(%%esi),%%mm4 \n\t"        //p1(16,18)        "movq            %%mm3,%%mm5 \n\t"                      //p1(16,15)        "paddd           8*16(%%esi),%%mm6 \n\t"        //p1(16,9)        "punpckhwd       %%mm3,%%mm5 \n\t"                      //p1(16,16)        "paddd           %10,%%mm6 \n\t"      //p1(16,10)        "psrad           $9,%%mm6    \n\t"                      //p1(16,11)        "pmaddwd         %9,%%mm5 \n\t" //p1(16,17)        "paddd           %%mm5,%%mm4 \n\t"                      //p1(16,19)        "movq            %%mm4,%%mm5 \n\t"                      //p1(16,20)        "paddd           8*17(%%esi),%%mm4 \n\t"        //p1(16,21)        "paddd           %10,%%mm4 \n\t"      //p1(16,22)        "psrad           $9,%%mm4    \n\t"                      //p1(16,23)        "packssdw        %%mm4,%%mm6 \n\t"                      //p1(16,24)        "movq            %%mm6,8*0(%%esi) \n\t"         //p1(16,25)        "movq            8*16(%%esi),%%mm4 \n\t"        //p1(16,26)        "psubd           %%mm7,%%mm4 \n\t"                      //p1(16,27)        "movq            8*17(%%esi),%%mm6 \n\t"        //p1(16,30)        "paddd           %10,%%mm4 \n\t"      //p1(16,28)        "movq            %%mm1,%%mm7 \n\t"                      //p1(17,3)        "psrad           $9,%%mm4    \n\t"                      //p1(16,29)        "psubd           %%mm5,%%mm6 \n\t"                      //p1(16,31)        "paddd           %10,%%mm6 \n\t"      //p1(16,32)        "punpcklwd       %%mm1,%%mm7 \n\t"                      //p1(17,4)        "pmaddwd         %11,%%mm7 \n\t" //p1(17,5)        "psrad           $9,%%mm6    \n\t"                      //p1(16,33)        "packssdw        %%mm6,%%mm4 \n\t"                      //p1(16,34)        "movq            %%mm4,8*14(%%esi) \n\t"        //p1(16,35)        "movq            %%mm0,%%mm6 \n\t"                      //p1(17,0)        "movq            %%mm0,%%mm4 \n\t"                      //p1(17,12)        "punpcklwd       %%mm2,%%mm6 \n\t"                      //p1(17,1)        "punpckhwd       %%mm2,%%mm4 \n\t"                      //p1(17,13)        "pmaddwd         %12,%%mm6 \n\t"     //p1(17,2)        "movq            %%mm1,%%mm5 \n\t"                      //p1(17,15)        "paddd           8*24(%%esi),%%mm6 \n\t"        //p1(17,6)        "punpckhwd       %%mm1,%%mm5 \n\t"                      //p1(17,16)        "paddd           %%mm7,%%mm6 \n\t"                      //p1(17,7)        "pmaddwd         %12,%%mm4 \n\t"     //p1(17,14)        "movq            %%mm6,%%mm7 \n\t"                      //p1(17,8)        "pmaddwd         %11,%%mm5 \n\t" //p1(17,17)        "paddd           8*18(%%esi),%%mm6 \n\t"        //p1(17,9)        "paddd           %10,%%mm6 \n\t"      //p1(17,10)        "psrad           $9,%%mm6    \n\t"                      //p1(17,11)        "paddd           8*25(%%esi),%%mm4 \n\t"        //p1(17,18)        "paddd           %%mm5,%%mm4 \n\t"                      //p1(17,19)        "movq            %%mm4,%%mm5 \n\t"                      //p1(17,20)        "paddd           8*19(%%esi),%%mm4 \n\t"        //p1(17,21)        "paddd           %10,%%mm4 \n\t"      //p1(17,22)        "psrad           $9,%%mm4    \n\t"                      //p1(17,23)        "packssdw        %%mm4,%%mm6 \n\t"                      //p1(17,24)        "movq            %%mm6,8*2(%%esi) \n\t"         //p1(17,25)        "movq            8*18(%%esi),%%mm4 \n\t"        //p1(17,26)        "movq            8*19(%%esi),%%mm6 \n\t"        //p1(17,30)        "psubd           %%mm7,%%mm4 \n\t"                      //p1(17,27)        "paddd           %10,%%mm4 \n\t"      //p1(17,28)        "psubd           %%mm5,%%mm6 \n\t"                      //p1(17,31)        "psrad           $9,%%mm4    \n\t"                      //p1(17,29)        "paddd           %10,%%mm6 \n\t"      //p1(17,32)

⌨️ 快捷键说明

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