OLD | NEW |
1 ; | 1 ; |
2 ; jdmrgss2-64.asm - merged upsampling/color conversion (64-bit SSE2) | 2 ; jdmrgss2-64.asm - merged upsampling/color conversion (64-bit SSE2) |
3 ; | 3 ; |
4 ; Copyright 2009 Pierre Ossman <ossman@cendio.se> for Cendio AB | 4 ; Copyright 2009 Pierre Ossman <ossman@cendio.se> for Cendio AB |
5 ; Copyright 2009 D. R. Commander | 5 ; Copyright 2009 D. R. Commander |
6 ; | 6 ; |
7 ; Based on | 7 ; Based on |
8 ; x86 SIMD extension for IJG JPEG library | 8 ; x86 SIMD extension for IJG JPEG library |
9 ; Copyright (C) 1999-2006, MIYASAKA Masaru. | 9 ; Copyright (C) 1999-2006, MIYASAKA Masaru. |
10 ; For conditions of distribution and use, see copyright notice in jsimdext.inc | 10 ; For conditions of distribution and use, see copyright notice in jsimdext.inc |
(...skipping 297 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
308 ; space. | 308 ; space. |
309 cmp rcx, byte SIZEOF_DWORD | 309 cmp rcx, byte SIZEOF_DWORD |
310 jb short .column_st3 | 310 jb short .column_st3 |
311 movd DWORD [rdi], xmmA | 311 movd DWORD [rdi], xmmA |
312 add rdi, byte SIZEOF_DWORD | 312 add rdi, byte SIZEOF_DWORD |
313 sub rcx, byte SIZEOF_DWORD | 313 sub rcx, byte SIZEOF_DWORD |
314 psrldq xmmA, SIZEOF_DWORD | 314 psrldq xmmA, SIZEOF_DWORD |
315 .column_st3: | 315 .column_st3: |
316 ; Store the lower 2 bytes of rax to the output when it has enough | 316 ; Store the lower 2 bytes of rax to the output when it has enough |
317 ; space. | 317 ; space. |
318 » movd» rax, xmmA | 318 » movd» eax, xmmA |
319 cmp rcx, byte SIZEOF_WORD | 319 cmp rcx, byte SIZEOF_WORD |
320 jb short .column_st1 | 320 jb short .column_st1 |
321 mov WORD [rdi], ax | 321 mov WORD [rdi], ax |
322 add rdi, byte SIZEOF_WORD | 322 add rdi, byte SIZEOF_WORD |
323 sub rcx, byte SIZEOF_WORD | 323 sub rcx, byte SIZEOF_WORD |
324 shr rax, 16 | 324 shr rax, 16 |
325 .column_st1: | 325 .column_st1: |
326 ; Store the lower 1 byte of rax to the output when it has enough | 326 ; Store the lower 1 byte of rax to the output when it has enough |
327 ; space. | 327 ; space. |
328 test rcx, rcx | 328 test rcx, rcx |
(...skipping 297 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
626 pop rdx | 626 pop rdx |
627 | 627 |
628 pop rbx | 628 pop rbx |
629 uncollect_args | 629 uncollect_args |
630 pop rbp | 630 pop rbp |
631 ret | 631 ret |
632 | 632 |
633 ; For some reason, the OS X linker does not honor the request to align the | 633 ; For some reason, the OS X linker does not honor the request to align the |
634 ; segment unless we do this. | 634 ; segment unless we do this. |
635 align 16 | 635 align 16 |
OLD | NEW |