📄 idct_ap922_sse.asm
字号:
pshufw mm5, mm5, 11011101b
pmaddwd mm7, mm5
paddd mm3, half11
pmaddwd mm0, [eax+16]
paddd mm3, mm4
pmaddwd mm1, [eax+24]
movq mm4, mm3
pmaddwd mm2, [eax+48]
paddd mm6, mm7
pmaddwd mm5, [eax+56]
paddd mm3, mm6
paddd mm0, half11
psrad mm3, 11
paddd mm0, mm1
psubd mm4, mm6
movq mm7, mm0
paddd mm2, mm5
paddd mm0, mm2
psrad mm4, 11
psubd mm7, mm2
psrad mm0, 11
psrad mm7, 11
packssdw mm3, mm0
packssdw mm7, mm4
pshufw mm7, mm7, 10110001b
; row 3
movq mm0, [esi+48]
movq [esi+32], mm3
movq mm1, [esi+56]
movq [esi+40], mm7
lea eax, table_35
movq mm2, mm0
movq mm3, [eax]
pshufw mm0, mm0, 10001000b
movq mm4, [eax+8]
movq mm5, mm1
pmaddwd mm3, mm0
movq mm6, [eax+32]
pshufw mm1, mm1, 10001000b
pmaddwd mm4, mm1
movq mm7, [eax+40]
pshufw mm2, mm2, 11011101b
pmaddwd mm6, mm2
pshufw mm5, mm5, 11011101b
pmaddwd mm7, mm5
paddd mm3, half11
pmaddwd mm0, [eax+16]
paddd mm3, mm4
pmaddwd mm1, [eax+24]
movq mm4, mm3
pmaddwd mm2, [eax+48]
paddd mm6, mm7
pmaddwd mm5, [eax+56]
paddd mm3, mm6
paddd mm0, half11
psrad mm3, 11
paddd mm0, mm1
psubd mm4, mm6
movq mm7, mm0
paddd mm2, mm5
paddd mm0, mm2
psrad mm4, 11
psubd mm7, mm2
psrad mm0, 11
psrad mm7, 11
packssdw mm3, mm0
packssdw mm7, mm4
pshufw mm7, mm7, 10110001b
; row 4
movq mm0, [esi+64]
movq [esi+48], mm3
movq mm1, [esi+72]
movq [esi+56], mm7
lea eax, table_04
movq mm2, mm0
movq mm3, [eax]
pshufw mm0, mm0, 10001000b
movq mm4, [eax+8]
movq mm5, mm1
pmaddwd mm3, mm0
movq mm6, [eax+32]
pshufw mm1, mm1, 10001000b
pmaddwd mm4, mm1
movq mm7, [eax+40]
pshufw mm2, mm2, 11011101b
pmaddwd mm6, mm2
pshufw mm5, mm5, 11011101b
pmaddwd mm7, mm5
paddd mm3, half11
pmaddwd mm0, [eax+16]
paddd mm3, mm4
pmaddwd mm1, [eax+24]
movq mm4, mm3
pmaddwd mm2, [eax+48]
paddd mm6, mm7
pmaddwd mm5, [eax+56]
paddd mm3, mm6
paddd mm0, half11
psrad mm3, 11
paddd mm0, mm1
psubd mm4, mm6
movq mm7, mm0
paddd mm2, mm5
paddd mm0, mm2
psrad mm4, 11
psubd mm7, mm2
psrad mm0, 11
psrad mm7, 11
packssdw mm3, mm0
packssdw mm7, mm4
pshufw mm7, mm7, 10110001b
; row 5
movq mm0, [esi+80]
movq [esi+64], mm3
movq mm1, [esi+88]
movq [esi+72], mm7
lea eax, table_35
movq mm2, mm0
movq mm3, [eax]
pshufw mm0, mm0, 10001000b
movq mm4, [eax+8]
movq mm5, mm1
pmaddwd mm3, mm0
movq mm6, [eax+32]
pshufw mm1, mm1, 10001000b
pmaddwd mm4, mm1
movq mm7, [eax+40]
pshufw mm2, mm2, 11011101b
pmaddwd mm6, mm2
pshufw mm5, mm5, 11011101b
pmaddwd mm7, mm5
paddd mm3, half11
pmaddwd mm0, [eax+16]
paddd mm3, mm4
pmaddwd mm1, [eax+24]
movq mm4, mm3
pmaddwd mm2, [eax+48]
paddd mm6, mm7
pmaddwd mm5, [eax+56]
paddd mm3, mm6
paddd mm0, half11
psrad mm3, 11
paddd mm0, mm1
psubd mm4, mm6
movq mm7, mm0
paddd mm2, mm5
paddd mm0, mm2
psrad mm4, 11
psubd mm7, mm2
psrad mm0, 11
psrad mm7, 11
packssdw mm3, mm0
packssdw mm7, mm4
pshufw mm7, mm7, 10110001b
; row 6
movq mm0, [esi+96]
movq [esi+80], mm3
movq mm1, [esi+104]
movq [esi+88], mm7
lea eax, table_26
movq mm2, mm0
movq mm3, [eax]
pshufw mm0, mm0, 10001000b
movq mm4, [eax+8]
movq mm5, mm1
pmaddwd mm3, mm0
movq mm6, [eax+32]
pshufw mm1, mm1, 10001000b
pmaddwd mm4, mm1
movq mm7, [eax+40]
pshufw mm2, mm2, 11011101b
pmaddwd mm6, mm2
pshufw mm5, mm5, 11011101b
pmaddwd mm7, mm5
paddd mm3, half11
pmaddwd mm0, [eax+16]
paddd mm3, mm4
pmaddwd mm1, [eax+24]
movq mm4, mm3
pmaddwd mm2, [eax+48]
paddd mm6, mm7
pmaddwd mm5, [eax+56]
paddd mm3, mm6
paddd mm0, half11
psrad mm3, 11
paddd mm0, mm1
psubd mm4, mm6
movq mm7, mm0
paddd mm2, mm5
paddd mm0, mm2
psrad mm4, 11
psubd mm7, mm2
psrad mm0, 11
psrad mm7, 11
packssdw mm3, mm0
packssdw mm7, mm4
pshufw mm7, mm7, 10110001b
; row 7
movq mm0, [esi+112]
movq [esi+96], mm3
movq mm1, [esi+120]
movq [esi+104], mm7
lea eax, table_17
movq mm2, mm0
movq mm3, [eax]
pshufw mm0, mm0, 10001000b
movq mm4, [eax+8]
movq mm5, mm1
pmaddwd mm3, mm0
movq mm6, [eax+32]
pshufw mm1, mm1, 10001000b
pmaddwd mm4, mm1
movq mm7, [eax+40]
pshufw mm2, mm2, 11011101b
pmaddwd mm6, mm2
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -