OLD | NEW |
1 ; | 1 ; |
2 ; Copyright (c) 2010 The WebM project authors. All Rights Reserved. | 2 ; Copyright (c) 2010 The WebM project authors. All Rights Reserved. |
3 ; | 3 ; |
4 ; Use of this source code is governed by a BSD-style license | 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 | 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 | 6 ; tree. An additional intellectual property rights grant can be found |
7 ; in the file PATENTS. All contributing project authors may | 7 ; in the file PATENTS. All contributing project authors may |
8 ; be found in the AUTHORS file in the root of the source tree. | 8 ; be found in the AUTHORS file in the root of the source tree. |
9 ; | 9 ; |
10 | 10 |
11 | 11 |
12 %include "vpx_ports/x86_abi_support.asm" | 12 %include "vpx_ports/x86_abi_support.asm" |
13 | 13 |
14 ;void idct_dequant_0_2x_sse2 | 14 ;void idct_dequant_0_2x_sse2 |
15 ; ( | 15 ; ( |
16 ; short *qcoeff - 0 | 16 ; short *qcoeff - 0 |
17 ; short *dequant - 1 | 17 ; short *dequant - 1 |
18 ; unsigned char *pre - 2 | 18 ; unsigned char *pre - 2 |
19 ; unsigned char *dst - 3 | 19 ; unsigned char *dst - 3 |
20 ; int dst_stride - 4 | 20 ; int dst_stride - 4 |
21 ; int blk_stride - 5 | 21 ; int blk_stride - 5 |
22 ; ) | 22 ; ) |
23 | 23 |
24 global sym(idct_dequant_0_2x_sse2) | 24 global sym(idct_dequant_0_2x_sse2) PRIVATE |
25 sym(idct_dequant_0_2x_sse2): | 25 sym(idct_dequant_0_2x_sse2): |
26 push rbp | 26 push rbp |
27 mov rbp, rsp | 27 mov rbp, rsp |
28 SHADOW_ARGS_TO_STACK 6 | 28 SHADOW_ARGS_TO_STACK 6 |
29 GET_GOT rbx | 29 GET_GOT rbx |
30 ; end prolog | 30 ; end prolog |
31 | 31 |
32 mov rdx, arg(1) ; dequant | 32 mov rdx, arg(1) ; dequant |
33 mov rax, arg(0) ; qcoeff | 33 mov rax, arg(0) ; qcoeff |
34 | 34 |
(...skipping 55 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
90 | 90 |
91 movq [rax], xmm2 | 91 movq [rax], xmm2 |
92 movq [rax + rdx], xmm3 | 92 movq [rax + rdx], xmm3 |
93 | 93 |
94 ; begin epilog | 94 ; begin epilog |
95 RESTORE_GOT | 95 RESTORE_GOT |
96 UNSHADOW_ARGS | 96 UNSHADOW_ARGS |
97 pop rbp | 97 pop rbp |
98 ret | 98 ret |
99 | 99 |
100 global sym(idct_dequant_full_2x_sse2) | 100 global sym(idct_dequant_full_2x_sse2) PRIVATE |
101 sym(idct_dequant_full_2x_sse2): | 101 sym(idct_dequant_full_2x_sse2): |
102 push rbp | 102 push rbp |
103 mov rbp, rsp | 103 mov rbp, rsp |
104 SHADOW_ARGS_TO_STACK 7 | 104 SHADOW_ARGS_TO_STACK 7 |
105 GET_GOT rbx | 105 GET_GOT rbx |
106 push rsi | 106 push rsi |
107 push rdi | 107 push rdi |
108 ; end prolog | 108 ; end prolog |
109 | 109 |
110 ; special case when 2 blocks have 0 or 1 coeffs | 110 ; special case when 2 blocks have 0 or 1 coeffs |
(...skipping 242 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
353 | 353 |
354 ;void idct_dequant_dc_0_2x_sse2 | 354 ;void idct_dequant_dc_0_2x_sse2 |
355 ; ( | 355 ; ( |
356 ; short *qcoeff - 0 | 356 ; short *qcoeff - 0 |
357 ; short *dequant - 1 | 357 ; short *dequant - 1 |
358 ; unsigned char *pre - 2 | 358 ; unsigned char *pre - 2 |
359 ; unsigned char *dst - 3 | 359 ; unsigned char *dst - 3 |
360 ; int dst_stride - 4 | 360 ; int dst_stride - 4 |
361 ; short *dc - 5 | 361 ; short *dc - 5 |
362 ; ) | 362 ; ) |
363 global sym(idct_dequant_dc_0_2x_sse2) | 363 global sym(idct_dequant_dc_0_2x_sse2) PRIVATE |
364 sym(idct_dequant_dc_0_2x_sse2): | 364 sym(idct_dequant_dc_0_2x_sse2): |
365 push rbp | 365 push rbp |
366 mov rbp, rsp | 366 mov rbp, rsp |
367 SHADOW_ARGS_TO_STACK 7 | 367 SHADOW_ARGS_TO_STACK 7 |
368 GET_GOT rbx | 368 GET_GOT rbx |
369 push rsi | 369 push rsi |
370 push rdi | 370 push rdi |
371 ; end prolog | 371 ; end prolog |
372 | 372 |
373 ; special case when 2 blocks have 0 or 1 coeffs | 373 ; special case when 2 blocks have 0 or 1 coeffs |
(...skipping 55 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
429 movq [rdi + rdx], xmm3 | 429 movq [rdi + rdx], xmm3 |
430 | 430 |
431 ; begin epilog | 431 ; begin epilog |
432 pop rdi | 432 pop rdi |
433 pop rsi | 433 pop rsi |
434 RESTORE_GOT | 434 RESTORE_GOT |
435 UNSHADOW_ARGS | 435 UNSHADOW_ARGS |
436 pop rbp | 436 pop rbp |
437 ret | 437 ret |
438 | 438 |
439 global sym(idct_dequant_dc_full_2x_sse2) | 439 global sym(idct_dequant_dc_full_2x_sse2) PRIVATE |
440 sym(idct_dequant_dc_full_2x_sse2): | 440 sym(idct_dequant_dc_full_2x_sse2): |
441 push rbp | 441 push rbp |
442 mov rbp, rsp | 442 mov rbp, rsp |
443 SHADOW_ARGS_TO_STACK 7 | 443 SHADOW_ARGS_TO_STACK 7 |
444 GET_GOT rbx | 444 GET_GOT rbx |
445 push rsi | 445 push rsi |
446 push rdi | 446 push rdi |
447 ; end prolog | 447 ; end prolog |
448 | 448 |
449 ; special case when 2 blocks have 0 or 1 coeffs | 449 ; special case when 2 blocks have 0 or 1 coeffs |
(...skipping 249 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
699 SECTION_RODATA | 699 SECTION_RODATA |
700 align 16 | 700 align 16 |
701 fours: | 701 fours: |
702 times 8 dw 0x0004 | 702 times 8 dw 0x0004 |
703 align 16 | 703 align 16 |
704 x_s1sqr2: | 704 x_s1sqr2: |
705 times 8 dw 0x8A8C | 705 times 8 dw 0x8A8C |
706 align 16 | 706 align 16 |
707 x_c1sqr2less1: | 707 x_c1sqr2less1: |
708 times 8 dw 0x4E7B | 708 times 8 dw 0x4E7B |
OLD | NEW |