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 | 14 |
15 %define BLOCK_HEIGHT_WIDTH 4 | 15 %define BLOCK_HEIGHT_WIDTH 4 |
16 %define vp8_filter_weight 128 | 16 %define vp8_filter_weight 128 |
17 %define VP8_FILTER_SHIFT 7 | 17 %define VP8_FILTER_SHIFT 7 |
18 | 18 |
19 | 19 |
20 ;void vp8_filter_block1d_h6_mmx | 20 ;void vp8_filter_block1d_h6_mmx |
21 ;( | 21 ;( |
22 ; unsigned char *src_ptr, | 22 ; unsigned char *src_ptr, |
23 ; unsigned short *output_ptr, | 23 ; unsigned short *output_ptr, |
24 ; unsigned int src_pixels_per_line, | 24 ; unsigned int src_pixels_per_line, |
25 ; unsigned int pixel_step, | 25 ; unsigned int pixel_step, |
26 ; unsigned int output_height, | 26 ; unsigned int output_height, |
27 ; unsigned int output_width, | 27 ; unsigned int output_width, |
28 ; short * vp8_filter | 28 ; short * vp8_filter |
29 ;) | 29 ;) |
30 global sym(vp8_filter_block1d_h6_mmx) | 30 global sym(vp8_filter_block1d_h6_mmx) PRIVATE |
31 sym(vp8_filter_block1d_h6_mmx): | 31 sym(vp8_filter_block1d_h6_mmx): |
32 push rbp | 32 push rbp |
33 mov rbp, rsp | 33 mov rbp, rsp |
34 SHADOW_ARGS_TO_STACK 7 | 34 SHADOW_ARGS_TO_STACK 7 |
35 GET_GOT rbx | 35 GET_GOT rbx |
36 push rsi | 36 push rsi |
37 push rdi | 37 push rdi |
38 ; end prolog | 38 ; end prolog |
39 | 39 |
40 mov rdx, arg(6) ;vp8_filter | 40 mov rdx, arg(6) ;vp8_filter |
(...skipping 76 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
117 ;( | 117 ;( |
118 ; short *src_ptr, | 118 ; short *src_ptr, |
119 ; unsigned char *output_ptr, | 119 ; unsigned char *output_ptr, |
120 ; int output_pitch, | 120 ; int output_pitch, |
121 ; unsigned int pixels_per_line, | 121 ; unsigned int pixels_per_line, |
122 ; unsigned int pixel_step, | 122 ; unsigned int pixel_step, |
123 ; unsigned int output_height, | 123 ; unsigned int output_height, |
124 ; unsigned int output_width, | 124 ; unsigned int output_width, |
125 ; short * vp8_filter | 125 ; short * vp8_filter |
126 ;) | 126 ;) |
127 global sym(vp8_filter_block1dc_v6_mmx) | 127 global sym(vp8_filter_block1dc_v6_mmx) PRIVATE |
128 sym(vp8_filter_block1dc_v6_mmx): | 128 sym(vp8_filter_block1dc_v6_mmx): |
129 push rbp | 129 push rbp |
130 mov rbp, rsp | 130 mov rbp, rsp |
131 SHADOW_ARGS_TO_STACK 8 | 131 SHADOW_ARGS_TO_STACK 8 |
132 GET_GOT rbx | 132 GET_GOT rbx |
133 push rsi | 133 push rsi |
134 push rdi | 134 push rdi |
135 ; end prolog | 135 ; end prolog |
136 | 136 |
137 movq mm5, [GLOBAL(rd)] | 137 movq mm5, [GLOBAL(rd)] |
(...skipping 67 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
205 | 205 |
206 ;void bilinear_predict8x8_mmx | 206 ;void bilinear_predict8x8_mmx |
207 ;( | 207 ;( |
208 ; unsigned char *src_ptr, | 208 ; unsigned char *src_ptr, |
209 ; int src_pixels_per_line, | 209 ; int src_pixels_per_line, |
210 ; int xoffset, | 210 ; int xoffset, |
211 ; int yoffset, | 211 ; int yoffset, |
212 ; unsigned char *dst_ptr, | 212 ; unsigned char *dst_ptr, |
213 ; int dst_pitch | 213 ; int dst_pitch |
214 ;) | 214 ;) |
215 global sym(vp8_bilinear_predict8x8_mmx) | 215 global sym(vp8_bilinear_predict8x8_mmx) PRIVATE |
216 sym(vp8_bilinear_predict8x8_mmx): | 216 sym(vp8_bilinear_predict8x8_mmx): |
217 push rbp | 217 push rbp |
218 mov rbp, rsp | 218 mov rbp, rsp |
219 SHADOW_ARGS_TO_STACK 6 | 219 SHADOW_ARGS_TO_STACK 6 |
220 GET_GOT rbx | 220 GET_GOT rbx |
221 push rsi | 221 push rsi |
222 push rdi | 222 push rdi |
223 ; end prolog | 223 ; end prolog |
224 | 224 |
225 ;const short *HFilter = bilinear_filters_mmx[xoffset]; | 225 ;const short *HFilter = bilinear_filters_mmx[xoffset]; |
(...skipping 136 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
362 | 362 |
363 ;void bilinear_predict8x4_mmx | 363 ;void bilinear_predict8x4_mmx |
364 ;( | 364 ;( |
365 ; unsigned char *src_ptr, | 365 ; unsigned char *src_ptr, |
366 ; int src_pixels_per_line, | 366 ; int src_pixels_per_line, |
367 ; int xoffset, | 367 ; int xoffset, |
368 ; int yoffset, | 368 ; int yoffset, |
369 ; unsigned char *dst_ptr, | 369 ; unsigned char *dst_ptr, |
370 ; int dst_pitch | 370 ; int dst_pitch |
371 ;) | 371 ;) |
372 global sym(vp8_bilinear_predict8x4_mmx) | 372 global sym(vp8_bilinear_predict8x4_mmx) PRIVATE |
373 sym(vp8_bilinear_predict8x4_mmx): | 373 sym(vp8_bilinear_predict8x4_mmx): |
374 push rbp | 374 push rbp |
375 mov rbp, rsp | 375 mov rbp, rsp |
376 SHADOW_ARGS_TO_STACK 6 | 376 SHADOW_ARGS_TO_STACK 6 |
377 GET_GOT rbx | 377 GET_GOT rbx |
378 push rsi | 378 push rsi |
379 push rdi | 379 push rdi |
380 ; end prolog | 380 ; end prolog |
381 | 381 |
382 ;const short *HFilter = bilinear_filters_mmx[xoffset]; | 382 ;const short *HFilter = bilinear_filters_mmx[xoffset]; |
(...skipping 134 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
517 | 517 |
518 ;void bilinear_predict4x4_mmx | 518 ;void bilinear_predict4x4_mmx |
519 ;( | 519 ;( |
520 ; unsigned char *src_ptr, | 520 ; unsigned char *src_ptr, |
521 ; int src_pixels_per_line, | 521 ; int src_pixels_per_line, |
522 ; int xoffset, | 522 ; int xoffset, |
523 ; int yoffset, | 523 ; int yoffset, |
524 ; unsigned char *dst_ptr, | 524 ; unsigned char *dst_ptr, |
525 ; int dst_pitch | 525 ; int dst_pitch |
526 ;) | 526 ;) |
527 global sym(vp8_bilinear_predict4x4_mmx) | 527 global sym(vp8_bilinear_predict4x4_mmx) PRIVATE |
528 sym(vp8_bilinear_predict4x4_mmx): | 528 sym(vp8_bilinear_predict4x4_mmx): |
529 push rbp | 529 push rbp |
530 mov rbp, rsp | 530 mov rbp, rsp |
531 SHADOW_ARGS_TO_STACK 6 | 531 SHADOW_ARGS_TO_STACK 6 |
532 GET_GOT rbx | 532 GET_GOT rbx |
533 push rsi | 533 push rsi |
534 push rdi | 534 push rdi |
535 ; end prolog | 535 ; end prolog |
536 | 536 |
537 ;const short *HFilter = bilinear_filters_mmx[xoffset]; | 537 ;const short *HFilter = bilinear_filters_mmx[xoffset]; |
(...skipping 180 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
718 times 8 dw 64 | 718 times 8 dw 64 |
719 | 719 |
720 times 8 dw 48 | 720 times 8 dw 48 |
721 times 8 dw 80 | 721 times 8 dw 80 |
722 | 722 |
723 times 8 dw 32 | 723 times 8 dw 32 |
724 times 8 dw 96 | 724 times 8 dw 96 |
725 | 725 |
726 times 8 dw 16 | 726 times 8 dw 16 |
727 times 8 dw 112 | 727 times 8 dw 112 |
OLD | NEW |