GET_GOT rbx
push rsi
push rdi
- push rbx
; end prolog
pxor xmm6, xmm6
packuswb xmm0, xmm2
- movsxd rbx, dword ptr arg(1) ;ref_pixels_per_line
- lea rsi, [rsi + rbx]
-%if ABI_IS_32BIT=0
+%if ABI_IS_32BIT
+ add rsi, dword ptr arg(1) ;ref_pixels_per_line
+%else
+ movsxd r8, dword ptr arg(1) ;ref_pixels_per_line
movsxd r9, dword ptr arg(3) ;src_pixels_per_line
+ lea rsi, [rsi + r8]
%endif
filter_block2d_bil_var_ssse3_loop:
paddd xmm7, xmm2
paddd xmm7, xmm3
- lea rsi, [rsi + rbx] ;ref_pixels_per_line
%if ABI_IS_32BIT
+ add rsi, dword ptr arg(1) ;ref_pixels_per_line
add rdi, dword ptr arg(3) ;src_pixels_per_line
%else
+ lea rsi, [rsi + r8]
lea rdi, [rdi + r9]
%endif
movdqu xmm1, XMMWORD PTR [rsi]
movdqa xmm0, xmm1
- movsxd rbx, dword ptr arg(3) ;src_pixels_per_line
+%if ABI_IS_32BIT=0
+ movsxd r9, dword ptr arg(3) ;src_pixels_per_line
+%endif
+
lea rsi, [rsi + rax]
filter_block2d_bil_sp_only_loop:
movdqa xmm1, xmm0
lea rsi, [rsi + rax] ;ref_pixels_per_line
- lea rdi, [rdi + rbx] ;src_pixels_per_line
+
+%if ABI_IS_32BIT
+ add rdi, dword ptr arg(3) ;src_pixels_per_line
+%else
+ lea rdi, [rdi + r9]
+%endif
sub rcx, 1
jnz filter_block2d_bil_sp_only_loop
mov rdi, arg(2) ;src_ptr
movsxd rcx, dword ptr arg(4) ;Height
movsxd rax, dword ptr arg(1) ;ref_pixels_per_line
- movsxd rbx, dword ptr arg(3) ;src_pixels_per_line
+ movsxd rdx, dword ptr arg(3) ;src_pixels_per_line
pxor xmm0, xmm0
filter_block2d_bil_full_pixel_loop:
paddd xmm7, xmm2
lea rsi, [rsi + rax] ;ref_pixels_per_line
- lea rdi, [rdi + rbx] ;src_pixels_per_line
+ lea rdi, [rdi + rdx] ;src_pixels_per_line
sub rcx, 1
jnz filter_block2d_bil_full_pixel_loop
movsxd rdx, dword ptr arg(1) ;ref_pixels_per_line
pxor xmm0, xmm0
- movsxd rbx, dword ptr arg(3) ;src_pixels_per_line
+
+%if ABI_IS_32BIT=0
+ movsxd r9, dword ptr arg(3) ;src_pixels_per_line
+%endif
filter_block2d_bil_fp_only_loop:
movdqu xmm1, XMMWORD PTR [rsi]
paddd xmm7, xmm3
lea rsi, [rsi + rdx]
- lea rdi, [rdi + rbx] ;src_pixels_per_line
+%if ABI_IS_32BIT
+ add rdi, dword ptr arg(3) ;src_pixels_per_line
+%else
+ lea rdi, [rdi + r9]
+%endif
sub rcx, 1
jnz filter_block2d_bil_fp_only_loop
movd [rdi], xmm6
; begin epilog
- pop rbx
pop rdi
pop rsi
RESTORE_GOT