interpolate_sse2.asm

来自「T264是中国的视频编码自由组织合力开发的264编解码程序」· 汇编 代码 · 共 628 行 · 第 1/2 页

ASM
628
字号
    pop edi
    pop esi
    pop ebx

    ret

;======================================================
;
; void 
; T264_pia_u_4x8_mmx(uint8_t* p1, uint8_t* p2, int32_t p1_stride, int32_t p2_stride, uint8_t* dst, int32_t dst_stride);
;
;======================================================

align 16

cglobal T264_pia_u_4x8_mmx
T264_pia_u_4x8_mmx    
    push ebx
    push esi
    push edi
   
    mov esi, [esp + 4 + 12]     ; p1 
    mov ebx, [esp + 8 + 12]		; p2
	mov	eax, [esp + 12 + 12]    ; 
	mov	edx, [esp + 16 + 12]    ; 
	mov	edi, [esp + 20 + 12]    ; 
	mov	ecx, [esp + 24 + 12]    ; 

	pia4b_mmx	esi,ebx,eax,edx,edi,ecx
	pia4b_mmx	esi,ebx,eax,edx,edi,ecx
	pia4b_mmx	esi,ebx,eax,edx,edi,ecx
	pia4b_mmx	esi,ebx,eax,edx,edi,ecx
	pia4b_mmx	esi,ebx,eax,edx,edi,ecx
	pia4b_mmx	esi,ebx,eax,edx,edi,ecx
	pia4b_mmx	esi,ebx,eax,edx,edi,ecx
	pia4b_mmx	esi,ebx,eax,edx,edi,ecx

	EMMS

    pop edi
    pop esi
    pop ebx

    ret

;======================================================
;
; void 
; T264_pia_u_8x4_sse(uint8_t* p1, uint8_t* p2, int32_t p1_stride, int32_t p2_stride, uint8_t* dst, int32_t dst_stride);
;
;======================================================

align 16

cglobal T264_pia_u_8x4_sse
T264_pia_u_8x4_sse    
    push ebx
    push esi
    push edi
   
    mov esi, [esp + 4 + 12]     ; p1 
    mov ebx, [esp + 8 + 12]		; p2
	mov	eax, [esp + 12 + 12]    ; 
	mov	edx, [esp + 16 + 12]    ; 
	mov	edi, [esp + 20 + 12]    ; 
	mov	ecx, [esp + 24 + 12]    ; 

	pia8b_sse	esi , ebx , eax , edx , edi , ecx
	pia8b_sse	esi,ebx,eax,edx,edi,ecx
	pia8b_sse	esi,ebx,eax,edx,edi,ecx
	pia8b_sse	esi,ebx,eax,edx,edi,ecx

    pop edi
    pop esi
    pop ebx

    ret

;======================================================
;
; void 
; T264_pia_u_8x8_sse(uint8_t* p1, uint8_t* p2, int32_t p1_stride, int32_t p2_stride, uint8_t* dst, int32_t dst_stride);
;
;======================================================

align 16

cglobal T264_pia_u_8x8_sse
T264_pia_u_8x8_sse    
    push ebx
    push esi
    push edi
   
    mov esi, [esp + 4 + 12]     ; p1 
    mov ebx, [esp + 8 + 12]		; p2
	mov	eax, [esp + 12 + 12]    ; 
	mov	edx, [esp + 16 + 12]    ; 
	mov	edi, [esp + 20 + 12]    ; 
	mov	ecx, [esp + 24 + 12]    ; 

	pia8b_sse	esi,ebx,eax,edx,edi,ecx
	pia8b_sse	esi,ebx,eax,edx,edi,ecx
	pia8b_sse	esi,ebx,eax,edx,edi,ecx
	pia8b_sse	esi,ebx,eax,edx,edi,ecx
	pia8b_sse	esi,ebx,eax,edx,edi,ecx
	pia8b_sse	esi,ebx,eax,edx,edi,ecx
	pia8b_sse	esi,ebx,eax,edx,edi,ecx
	pia8b_sse	esi,ebx,eax,edx,edi,ecx

    pop edi
    pop esi
    pop ebx

    ret

;======================================================
;
; void 
; T264_pia_u_8x16_sse(uint8_t* p1, uint8_t* p2, int32_t p1_stride, int32_t p2_stride, uint8_t* dst, int32_t dst_stride);
;
;======================================================

align 16

cglobal T264_pia_u_8x16_sse
T264_pia_u_8x16_sse    
    push ebx
    push esi
    push edi
   
    mov esi, [esp + 4 + 12]     ; p1 
    mov ebx, [esp + 8 + 12]		; p2
	mov	eax, [esp + 12 + 12]    ; 
	mov	edx, [esp + 16 + 12]    ; 
	mov	edi, [esp + 20 + 12]    ; 
	mov	ecx, [esp + 24 + 12]    ; 

	pia8b_sse	esi,ebx,eax,edx,edi,ecx
	pia8b_sse	esi,ebx,eax,edx,edi,ecx
	pia8b_sse	esi,ebx,eax,edx,edi,ecx
	pia8b_sse	esi,ebx,eax,edx,edi,ecx
	pia8b_sse	esi,ebx,eax,edx,edi,ecx
	pia8b_sse	esi,ebx,eax,edx,edi,ecx
	pia8b_sse	esi,ebx,eax,edx,edi,ecx
	pia8b_sse	esi,ebx,eax,edx,edi,ecx
	pia8b_sse	esi,ebx,eax,edx,edi,ecx
	pia8b_sse	esi,ebx,eax,edx,edi,ecx
	pia8b_sse	esi,ebx,eax,edx,edi,ecx
	pia8b_sse	esi,ebx,eax,edx,edi,ecx
	pia8b_sse	esi,ebx,eax,edx,edi,ecx
	pia8b_sse	esi,ebx,eax,edx,edi,ecx
	pia8b_sse	esi,ebx,eax,edx,edi,ecx
	pia8b_sse	esi,ebx,eax,edx,edi,ecx

    pop edi
    pop esi
    pop ebx

    ret

;======================================================
;
; void 
; T264_pia_u_16x8_sse(uint8_t* p1, uint8_t* p2, int32_t p1_stride, int32_t p2_stride, uint8_t* dst, int32_t dst_stride);
;
;======================================================

align 16

cglobal T264_pia_u_16x8_sse
T264_pia_u_16x8_sse    
    push ebx
    push esi
    push edi
   
    mov esi, [esp + 4 + 12]     ; p1 
    mov ebx, [esp + 8 + 12]		; p2
	mov	eax, [esp + 12 + 12]    ; 
	mov	edx, [esp + 16 + 12]    ; 
	mov	edi, [esp + 20 + 12]    ; 
	mov	ecx, [esp + 24 + 12]    ; 

	pia16b_sse	esi,ebx,eax,edx,edi,ecx
	pia16b_sse	esi,ebx,eax,edx,edi,ecx
	pia16b_sse	esi,ebx,eax,edx,edi,ecx
	pia16b_sse	esi,ebx,eax,edx,edi,ecx
	pia16b_sse	esi,ebx,eax,edx,edi,ecx
	pia16b_sse	esi,ebx,eax,edx,edi,ecx
	pia16b_sse	esi,ebx,eax,edx,edi,ecx
	pia16b_sse	esi,ebx,eax,edx,edi,ecx

    pop edi
    pop esi
    pop ebx

    ret

;======================================================
;
; void 
; T264_pia_u_16x16_sse(uint8_t* p1, uint8_t* p2, int32_t p1_stride, int32_t p2_stride, uint8_t* dst, int32_t dst_stride);
;
;======================================================

align 16

cglobal T264_pia_u_16x16_sse
T264_pia_u_16x16_sse    
    push ebx
    push esi
    push edi
   
    mov esi, [esp + 4 + 12]     ; p1 
    mov ebx, [esp + 8 + 12]		; p2
	mov	eax, [esp + 12 + 12]    ; 
	mov	edx, [esp + 16 + 12]    ; 
	mov	edi, [esp + 20 + 12]    ; 
	mov	ecx, [esp + 24 + 12]    ; 

	pia16b_sse	esi,ebx,eax,edx,edi,ecx
	pia16b_sse	esi,ebx,eax,edx,edi,ecx
	pia16b_sse	esi,ebx,eax,edx,edi,ecx
	pia16b_sse	esi,ebx,eax,edx,edi,ecx
	pia16b_sse	esi,ebx,eax,edx,edi,ecx
	pia16b_sse	esi,ebx,eax,edx,edi,ecx
	pia16b_sse	esi,ebx,eax,edx,edi,ecx
	pia16b_sse	esi,ebx,eax,edx,edi,ecx
	pia16b_sse	esi,ebx,eax,edx,edi,ecx
	pia16b_sse	esi,ebx,eax,edx,edi,ecx
	pia16b_sse	esi,ebx,eax,edx,edi,ecx
	pia16b_sse	esi,ebx,eax,edx,edi,ecx
	pia16b_sse	esi,ebx,eax,edx,edi,ecx
	pia16b_sse	esi,ebx,eax,edx,edi,ecx
	pia16b_sse	esi,ebx,eax,edx,edi,ecx
	pia16b_sse	esi,ebx,eax,edx,edi,ecx

    pop edi
    pop esi
    pop ebx

    ret
    
;======================================================
;
; void 
; T264_pia_u_16x16_sse2(uint8_t* p1, uint8_t* p2, int32_t p1_stride, int32_t p2_stride, uint8_t* dst, int32_t dst_stride);
;
;======================================================

align 16

cglobal T264_pia_u_16x16_sse2
T264_pia_u_16x16_sse2

    push ebx
    push esi
    push edi
    
    mov eax, [esp + 4 + 12] ; p1
    mov ecx, [esp + 8 + 12] ; p2
    mov ebx, [esp + 12+ 12] ; p1_stride
    mov edx, [esp + 16+ 12] ; p2_stride
    mov esi, [esp + 20+ 12] ; dst
    mov edi, [esp + 24+ 12] ; dst_stride
    
    new_pia16b_sse2
    new_pia16b_sse2
    new_pia16b_sse2
    new_pia16b_sse2
    new_pia16b_sse2
    new_pia16b_sse2
    new_pia16b_sse2
    new_pia16b_sse2
    
    pop edi
    pop esi
    pop ebx
    
    ret    
    
;======================================================
;
; void 
; T264_pia_u_16x8_sse2(uint8_t* p1, uint8_t* p2, int32_t p1_stride, int32_t p2_stride, uint8_t* dst, int32_t dst_stride);
;
;======================================================

align 16

cglobal T264_pia_u_16x8_sse2
T264_pia_u_16x8_sse2

    push ebx
    push esi
    push edi
    
    mov eax, [esp + 4 + 12] ; p1
    mov ecx, [esp + 8 + 12] ; p2
    mov ebx, [esp + 12+ 12] ; p1_stride
    mov edx, [esp + 16+ 12] ; p2_stride
    mov esi, [esp + 20+ 12] ; dst
    mov edi, [esp + 24+ 12] ; dst_stride
    
    new_pia16b_sse2
    new_pia16b_sse2
    new_pia16b_sse2
    new_pia16b_sse2
    
    pop edi
    pop esi
    pop ebx
    
    ret    

⌨️ 快捷键说明

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