📄 jidctint.c
字号:
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 + -