| OLD | NEW | 
|---|
| 1 ; | 1 ; | 
| 2 ; jcclrss2-64.asm - colorspace conversion (64-bit SSE2) | 2 ; jcclrss2-64.asm - colorspace conversion (64-bit SSE2) | 
| 3 ; | 3 ; | 
| 4 ; x86 SIMD extension for IJG JPEG library | 4 ; x86 SIMD extension for IJG JPEG library | 
| 5 ; Copyright (C) 1999-2006, MIYASAKA Masaru. | 5 ; Copyright (C) 1999-2006, MIYASAKA Masaru. | 
| 6 ; Copyright (C) 2009, D. R. Commander. | 6 ; Copyright (C) 2009, D. R. Commander. | 
| 7 ; For conditions of distribution and use, see copyright notice in jsimdext.inc | 7 ; For conditions of distribution and use, see copyright notice in jsimdext.inc | 
| 8 ; | 8 ; | 
| 9 ; This file should be assembled with NASM (Netwide Assembler), | 9 ; This file should be assembled with NASM (Netwide Assembler), | 
| 10 ; can *not* be assembled with Microsoft's MASM or any compatible | 10 ; can *not* be assembled with Microsoft's MASM or any compatible | 
| (...skipping 21 matching lines...) Expand all  Loading... | 
| 32 ; r11 = JSAMPARRAY input_buf | 32 ; r11 = JSAMPARRAY input_buf | 
| 33 ; r12 = JSAMPIMAGE output_buf | 33 ; r12 = JSAMPIMAGE output_buf | 
| 34 ; r13 = JDIMENSION output_row | 34 ; r13 = JDIMENSION output_row | 
| 35 ; r14 = int num_rows | 35 ; r14 = int num_rows | 
| 36 | 36 | 
| 37 %define wk(i)           rbp-(WK_NUM-(i))*SIZEOF_XMMWORD ; xmmword wk[WK_NUM] | 37 %define wk(i)           rbp-(WK_NUM-(i))*SIZEOF_XMMWORD ; xmmword wk[WK_NUM] | 
| 38 %define WK_NUM          8 | 38 %define WK_NUM          8 | 
| 39 | 39 | 
| 40         align   16 | 40         align   16 | 
| 41 | 41 | 
| 42 »       global» EXTN(jsimd_rgb_ycc_convert_sse2) | 42 »       global» EXTN(jsimd_rgb_ycc_convert_sse2) PRIVATE | 
| 43 | 43 | 
| 44 EXTN(jsimd_rgb_ycc_convert_sse2): | 44 EXTN(jsimd_rgb_ycc_convert_sse2): | 
| 45         push    rbp | 45         push    rbp | 
| 46         mov     rax,rsp                         ; rax = original rbp | 46         mov     rax,rsp                         ; rax = original rbp | 
| 47         sub     rsp, byte 4 | 47         sub     rsp, byte 4 | 
| 48         and     rsp, byte (-SIZEOF_XMMWORD)     ; align to 128 bits | 48         and     rsp, byte (-SIZEOF_XMMWORD)     ; align to 128 bits | 
| 49         mov     [rsp],rax | 49         mov     [rsp],rax | 
| 50         mov     rbp,rsp                         ; rbp = aligned rbp | 50         mov     rbp,rsp                         ; rbp = aligned rbp | 
| 51         lea     rsp, [wk(0)] | 51         lea     rsp, [wk(0)] | 
| 52         collect_args | 52         collect_args | 
| (...skipping 425 matching lines...) Expand 10 before | Expand all | Expand 10 after  Loading... | 
| 478         pop     rbx | 478         pop     rbx | 
| 479         uncollect_args | 479         uncollect_args | 
| 480         mov     rsp,rbp         ; rsp <- aligned rbp | 480         mov     rsp,rbp         ; rsp <- aligned rbp | 
| 481         pop     rsp             ; rsp <- original rbp | 481         pop     rsp             ; rsp <- original rbp | 
| 482         pop     rbp | 482         pop     rbp | 
| 483         ret | 483         ret | 
| 484 | 484 | 
| 485 ; For some reason, the OS X linker does not honor the request to align the | 485 ; For some reason, the OS X linker does not honor the request to align the | 
| 486 ; segment unless we do this. | 486 ; segment unless we do this. | 
| 487         align   16 | 487         align   16 | 
| OLD | NEW | 
|---|