Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(66)

Side by Side Diff: source/libvpx/vp8/common/x86/copy_sse2.asm

Issue 1124333011: libvpx: Pull from upstream (Closed) Base URL: https://chromium.googlesource.com/chromium/deps/libvpx.git@master
Patch Set: only update to last nights LKGR Created 5 years, 7 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch
« no previous file with comments | « source/libvpx/vp8/common/variance.h ('k') | source/libvpx/vp8/common/x86/copy_sse3.asm » ('j') | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
(Empty)
1 ;
2 ; Copyright (c) 2010 The WebM project authors. All Rights Reserved.
3 ;
4 ; Use of this source code is governed by a BSD-style license
5 ; that can be found in the LICENSE file in the root of the source
6 ; tree. An additional intellectual property rights grant can be found
7 ; in the file PATENTS. All contributing project authors may
8 ; be found in the AUTHORS file in the root of the source tree.
9 ;
10
11
12 %include "vpx_ports/x86_abi_support.asm"
13
14
15 ;void vp8_copy32xn_sse2(
16 ; unsigned char *src_ptr,
17 ; int src_stride,
18 ; unsigned char *dst_ptr,
19 ; int dst_stride,
20 ; int height);
21 global sym(vp8_copy32xn_sse2) PRIVATE
22 sym(vp8_copy32xn_sse2):
23 push rbp
24 mov rbp, rsp
25 SHADOW_ARGS_TO_STACK 5
26 SAVE_XMM 7
27 push rsi
28 push rdi
29 ; end prolog
30
31 mov rsi, arg(0) ;src_ptr
32 mov rdi, arg(2) ;dst_ptr
33
34 movsxd rax, dword ptr arg(1) ;src_stride
35 movsxd rdx, dword ptr arg(3) ;dst_stride
36 movsxd rcx, dword ptr arg(4) ;height
37
38 .block_copy_sse2_loopx4:
39 movdqu xmm0, XMMWORD PTR [rsi]
40 movdqu xmm1, XMMWORD PTR [rsi + 16]
41 movdqu xmm2, XMMWORD PTR [rsi + rax]
42 movdqu xmm3, XMMWORD PTR [rsi + rax + 16]
43
44 lea rsi, [rsi+rax*2]
45
46 movdqu xmm4, XMMWORD PTR [rsi]
47 movdqu xmm5, XMMWORD PTR [rsi + 16]
48 movdqu xmm6, XMMWORD PTR [rsi + rax]
49 movdqu xmm7, XMMWORD PTR [rsi + rax + 16]
50
51 lea rsi, [rsi+rax*2]
52
53 movdqa XMMWORD PTR [rdi], xmm0
54 movdqa XMMWORD PTR [rdi + 16], xmm1
55 movdqa XMMWORD PTR [rdi + rdx], xmm2
56 movdqa XMMWORD PTR [rdi + rdx + 16], xmm3
57
58 lea rdi, [rdi+rdx*2]
59
60 movdqa XMMWORD PTR [rdi], xmm4
61 movdqa XMMWORD PTR [rdi + 16], xmm5
62 movdqa XMMWORD PTR [rdi + rdx], xmm6
63 movdqa XMMWORD PTR [rdi + rdx + 16], xmm7
64
65 lea rdi, [rdi+rdx*2]
66
67 sub rcx, 4
68 cmp rcx, 4
69 jge .block_copy_sse2_loopx4
70
71 cmp rcx, 0
72 je .copy_is_done
73
74 .block_copy_sse2_loop:
75 movdqu xmm0, XMMWORD PTR [rsi]
76 movdqu xmm1, XMMWORD PTR [rsi + 16]
77 lea rsi, [rsi+rax]
78
79 movdqa XMMWORD PTR [rdi], xmm0
80 movdqa XMMWORD PTR [rdi + 16], xmm1
81 lea rdi, [rdi+rdx]
82
83 sub rcx, 1
84 jne .block_copy_sse2_loop
85
86 .copy_is_done:
87 ; begin epilog
88 pop rdi
89 pop rsi
90 RESTORE_XMM
91 UNSHADOW_ARGS
92 pop rbp
93 ret
OLDNEW
« no previous file with comments | « source/libvpx/vp8/common/variance.h ('k') | source/libvpx/vp8/common/x86/copy_sse3.asm » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698