push edi
push esi
- ; commented out because it seems useless --sam
- ;push ebx
- PUSH_EBX_IF_PIC
+ push ebx
push ebp
- GET_GOT_IN_EBX_IF_PIC
-
mov edx, [esp + 40] ; src_stride
lea edx, [edx + edx + 18 + tbuffer]
sub esp, edx
sub eax, ecx
mov [esp + tsrc] ,eax ; src - 2 * src_stride
- ; commented out because it seems useless --sam
- ;lea ebx, [ecx + ecx * 2] ; 3 * src_stride
+ lea ebx, [ecx + ecx * 2] ; 3 * src_stride
lea edx, [ecx + ecx * 4] ; 5 * src_stride
+ PUSH_EBX_IF_PIC
+ GET_GOT_IN_EBX_IF_PIC
+
pxor mm0, mm0 ; 0 ---> mm0
movq mm7, [mmx_dd_one GLOBAL] ; for rounding
lea ebp, [esp + tbuffer]
mov esi, [esp + tsrc]
+ POP_EBX_IF_PIC
FILT_ALL esi
+ PUSH_EBX_IF_PIC
+ GET_GOT_IN_EBX_IF_PIC
pshufw mm2, mm1, 0
movq [ebp + 8], mm1
loopcx1:
+ POP_EBX_IF_PIC
FILT_ALL esi
+ PUSH_EBX_IF_PIC
+ GET_GOT_IN_EBX_IF_PIC
movq [ebp + 2 * eax], mm1
paddw mm1, [mmx_dw_one GLOBAL]
cmp eax, [esp + twidth]
jnz loopcx1
+ POP_EBX_IF_PIC
FILT_ALL esi
+ PUSH_EBX_IF_PIC
+ GET_GOT_IN_EBX_IF_PIC
pshufw mm2, mm1, 7
movq [ebp + 2 * eax], mm1
mov [esp + theight], ebp
jnz loopcy
+ POP_EBX_IF_PIC
+
add esp, [esp + toffset]
pop ebp
- ; commented out because it seems useless --sam
- ;pop ebx
- POP_EBX_IF_PIC
+ pop ebx
pop esi
pop edi