| Index: google.patch
|
| ===================================================================
|
| --- google.patch (revision 111873)
|
| +++ google.patch (working copy)
|
| @@ -1,6 +1,6 @@
|
| Index: jdmarker.c
|
| ===================================================================
|
| ---- jdmarker.c (revision 722)
|
| +--- jdmarker.c (revision 733)
|
| +++ jdmarker.c (working copy)
|
| @@ -906,7 +906,7 @@
|
| }
|
| @@ -166,7 +166,7 @@
|
| cinfo->unread_marker = 0; /* processed the marker */
|
| Index: jmorecfg.h
|
| ===================================================================
|
| ---- jmorecfg.h (revision 722)
|
| +--- jmorecfg.h (revision 733)
|
| +++ jmorecfg.h (working copy)
|
| @@ -153,14 +153,18 @@
|
| /* INT16 must hold at least the values -32768..32767. */
|
| @@ -203,7 +203,7 @@
|
| /*
|
| Index: jpeglib.h
|
| ===================================================================
|
| ---- jpeglib.h (revision 722)
|
| +--- jpeglib.h (revision 733)
|
| +++ jpeglib.h (working copy)
|
| @@ -15,6 +15,10 @@
|
| #ifndef JPEGLIB_H
|
| @@ -336,7 +336,7 @@
|
| +#endif // THIRD_PARTY_LIBJPEG_TURBO_JPEGLIBMANGLER_H_
|
| Index: simd/jcgrass2-64.asm
|
| ===================================================================
|
| ---- simd/jcgrass2-64.asm (revision 722)
|
| +--- simd/jcgrass2-64.asm (revision 733)
|
| +++ simd/jcgrass2-64.asm (working copy)
|
| @@ -30,7 +30,7 @@
|
| SECTION SEG_CONST
|
| @@ -349,7 +349,7 @@
|
|
|
| Index: simd/jiss2fst.asm
|
| ===================================================================
|
| ---- simd/jiss2fst.asm (revision 722)
|
| +--- simd/jiss2fst.asm (revision 733)
|
| +++ simd/jiss2fst.asm (working copy)
|
| @@ -59,7 +59,7 @@
|
| %define CONST_SHIFT (16 - PRE_MULTIPLY_SCALE_BITS - CONST_BITS)
|
| @@ -371,7 +371,7 @@
|
| push ebp
|
| Index: simd/jiss2red-64.asm
|
| ===================================================================
|
| ---- simd/jiss2red-64.asm (revision 722)
|
| +--- simd/jiss2red-64.asm (revision 733)
|
| +++ simd/jiss2red-64.asm (working copy)
|
| @@ -73,7 +73,7 @@
|
| SECTION SEG_CONST
|
| @@ -402,7 +402,7 @@
|
| push rbp
|
| Index: simd/jcclrss2-64.asm
|
| ===================================================================
|
| ---- simd/jcclrss2-64.asm (revision 722)
|
| +--- simd/jcclrss2-64.asm (revision 733)
|
| +++ simd/jcclrss2-64.asm (working copy)
|
| @@ -37,7 +37,7 @@
|
|
|
| @@ -415,7 +415,7 @@
|
| push rbp
|
| Index: simd/ji3dnflt.asm
|
| ===================================================================
|
| ---- simd/ji3dnflt.asm (revision 722)
|
| +--- simd/ji3dnflt.asm (revision 733)
|
| +++ simd/ji3dnflt.asm (working copy)
|
| @@ -27,7 +27,7 @@
|
| SECTION SEG_CONST
|
| @@ -437,7 +437,7 @@
|
| push ebp
|
| Index: simd/jsimdcpu.asm
|
| ===================================================================
|
| ---- simd/jsimdcpu.asm (revision 722)
|
| +--- simd/jsimdcpu.asm (revision 733)
|
| +++ simd/jsimdcpu.asm (working copy)
|
| @@ -29,7 +29,7 @@
|
| ;
|
| @@ -450,7 +450,7 @@
|
| push ebx
|
| Index: simd/jdsammmx.asm
|
| ===================================================================
|
| ---- simd/jdsammmx.asm (revision 722)
|
| +--- simd/jdsammmx.asm (revision 733)
|
| +++ simd/jdsammmx.asm (working copy)
|
| @@ -22,7 +22,7 @@
|
| SECTION SEG_CONST
|
| @@ -499,7 +499,7 @@
|
| push ebp
|
| Index: simd/jdmerss2-64.asm
|
| ===================================================================
|
| ---- simd/jdmerss2-64.asm (revision 722)
|
| +--- simd/jdmerss2-64.asm (revision 733)
|
| +++ simd/jdmerss2-64.asm (working copy)
|
| @@ -35,7 +35,7 @@
|
| SECTION SEG_CONST
|
| @@ -512,7 +512,7 @@
|
|
|
| Index: simd/jdmrgmmx.asm
|
| ===================================================================
|
| ---- simd/jdmrgmmx.asm (revision 722)
|
| +--- simd/jdmrgmmx.asm (revision 733)
|
| +++ simd/jdmrgmmx.asm (working copy)
|
| @@ -40,7 +40,7 @@
|
| %define gotptr wk(0)-SIZEOF_POINTER ; void * gotptr
|
| @@ -534,7 +534,7 @@
|
| push ebp
|
| Index: simd/jdsamss2.asm
|
| ===================================================================
|
| ---- simd/jdsamss2.asm (revision 722)
|
| +--- simd/jdsamss2.asm (revision 733)
|
| +++ simd/jdsamss2.asm (working copy)
|
| @@ -22,7 +22,7 @@
|
| SECTION SEG_CONST
|
| @@ -583,7 +583,7 @@
|
| push ebp
|
| Index: simd/jiss2flt-64.asm
|
| ===================================================================
|
| ---- simd/jiss2flt-64.asm (revision 722)
|
| +--- simd/jiss2flt-64.asm (revision 733)
|
| +++ simd/jiss2flt-64.asm (working copy)
|
| @@ -38,7 +38,7 @@
|
| SECTION SEG_CONST
|
| @@ -605,7 +605,7 @@
|
| push rbp
|
| Index: simd/jfss2int-64.asm
|
| ===================================================================
|
| ---- simd/jfss2int-64.asm (revision 722)
|
| +--- simd/jfss2int-64.asm (revision 733)
|
| +++ simd/jfss2int-64.asm (working copy)
|
| @@ -67,7 +67,7 @@
|
| SECTION SEG_CONST
|
| @@ -627,7 +627,7 @@
|
| push rbp
|
| Index: simd/jcqnts2f.asm
|
| ===================================================================
|
| ---- simd/jcqnts2f.asm (revision 722)
|
| +--- simd/jcqnts2f.asm (revision 733)
|
| +++ simd/jcqnts2f.asm (working copy)
|
| @@ -35,7 +35,7 @@
|
| %define workspace ebp+16 ; FAST_FLOAT * workspace
|
| @@ -649,7 +649,7 @@
|
| push ebp
|
| Index: simd/jdmrgss2.asm
|
| ===================================================================
|
| ---- simd/jdmrgss2.asm (revision 722)
|
| +--- simd/jdmrgss2.asm (revision 733)
|
| +++ simd/jdmrgss2.asm (working copy)
|
| @@ -40,7 +40,7 @@
|
| %define gotptr wk(0)-SIZEOF_POINTER ; void * gotptr
|
| @@ -660,88 +660,7 @@
|
|
|
| EXTN(jsimd_h2v1_merged_upsample_sse2):
|
| push ebp
|
| -@@ -307,6 +307,41 @@
|
| - movdqa xmmA,xmmD
|
| - sub ecx, byte SIZEOF_XMMWORD
|
| - .column_st15:
|
| -+%ifdef STRICT_MEMORY_ACCESS
|
| -+ ; Store the lower 8 bytes of xmmA to the output when it has enough
|
| -+ ; space.
|
| -+ cmp ecx, byte SIZEOF_MMWORD
|
| -+ jb short .column_st7
|
| -+ movq MMWORD [edi], xmmA
|
| -+ add edi, byte SIZEOF_MMWORD
|
| -+ sub ecx, byte SIZEOF_MMWORD
|
| -+ psrldq xmmA, SIZEOF_MMWORD
|
| -+.column_st7:
|
| -+ ; Store the lower 4 bytes of xmmA to the output when it has enough
|
| -+ ; space.
|
| -+ cmp ecx, byte SIZEOF_DWORD
|
| -+ jb short .column_st3
|
| -+ movd DWORD [edi], xmmA
|
| -+ add edi, byte SIZEOF_DWORD
|
| -+ sub ecx, byte SIZEOF_DWORD
|
| -+ psrldq xmmA, SIZEOF_DWORD
|
| -+.column_st3:
|
| -+ ; Store the lower 2 bytes of eax to the output when it has enough
|
| -+ ; space.
|
| -+ movd eax, xmmA
|
| -+ cmp ecx, byte SIZEOF_WORD
|
| -+ jb short .column_st1
|
| -+ mov WORD [edi], ax
|
| -+ add edi, byte SIZEOF_WORD
|
| -+ sub ecx, byte SIZEOF_WORD
|
| -+ shr eax, 16
|
| -+.column_st1:
|
| -+ ; Store the lower 1 byte of eax to the output when it has enough
|
| -+ ; space.
|
| -+ test ecx, ecx
|
| -+ jz short .endcolumn
|
| -+ mov BYTE [edi], al
|
| -+%else
|
| - mov eax,ecx
|
| - xor ecx, byte 0x0F
|
| - shl ecx, 2
|
| -@@ -346,6 +381,7 @@
|
| - por xmmE,xmmC
|
| - .adj0: ; ----------------
|
| - maskmovdqu xmmA,xmmE ; movntdqu XMMWORD [edi], xmmA
|
| -+%endif ; STRICT_MEMORY_ACCESS ; ---------------
|
| -
|
| - %else ; RGB_PIXELSIZE == 4 ; -----------
|
| -
|
| -@@ -434,6 +470,22 @@
|
| - movdqa xmmA,xmmD
|
| - sub ecx, byte SIZEOF_XMMWORD/4
|
| - .column_st15:
|
| -+%ifdef STRICT_MEMORY_ACCESS
|
| -+ ; Store two pixels (8 bytes) of xmmA to the output when it has enough
|
| -+ ; space.
|
| -+ cmp ecx, byte SIZEOF_XMMWORD/8
|
| -+ jb short .column_st7
|
| -+ movq MMWORD [edi], xmmA
|
| -+ add edi, byte SIZEOF_XMMWORD/8*4
|
| -+ sub ecx, byte SIZEOF_XMMWORD/8
|
| -+ psrldq xmmA, SIZEOF_XMMWORD/8*4
|
| -+.column_st7:
|
| -+ ; Store one pixel (4 bytes) of xmmA to the output when it has enough
|
| -+ ; space.
|
| -+ test ecx, ecx
|
| -+ jz short .endcolumn
|
| -+ movd DWORD [edi], xmmA
|
| -+%else
|
| - cmp ecx, byte SIZEOF_XMMWORD/16
|
| - jb short .endcolumn
|
| - mov eax,ecx
|
| -@@ -473,6 +525,7 @@
|
| - por xmmE,xmmG
|
| - .adj0: ; ----------------
|
| - maskmovdqu xmmA,xmmE ; movntdqu XMMWORD [edi], xmmA
|
| -+%endif ; STRICT_MEMORY_ACCESS ; ---------------
|
| -
|
| - %endif ; RGB_PIXELSIZE ; ---------------
|
| -
|
| -@@ -507,7 +560,7 @@
|
| +@@ -560,7 +560,7 @@
|
| %define output_buf(b) (b)+20 ; JSAMPARRAY output_buf
|
|
|
| align 16
|
| @@ -752,7 +671,7 @@
|
| push ebp
|
| Index: simd/jfmmxint.asm
|
| ===================================================================
|
| ---- simd/jfmmxint.asm (revision 722)
|
| +--- simd/jfmmxint.asm (revision 733)
|
| +++ simd/jfmmxint.asm (working copy)
|
| @@ -66,7 +66,7 @@
|
| SECTION SEG_CONST
|
| @@ -774,7 +693,7 @@
|
| push ebp
|
| Index: simd/jcgryss2-64.asm
|
| ===================================================================
|
| ---- simd/jcgryss2-64.asm (revision 722)
|
| +--- simd/jcgryss2-64.asm (revision 733)
|
| +++ simd/jcgryss2-64.asm (working copy)
|
| @@ -37,7 +37,7 @@
|
|
|
| @@ -787,7 +706,7 @@
|
| push rbp
|
| Index: simd/jcqnts2i.asm
|
| ===================================================================
|
| ---- simd/jcqnts2i.asm (revision 722)
|
| +--- simd/jcqnts2i.asm (revision 733)
|
| +++ simd/jcqnts2i.asm (working copy)
|
| @@ -35,7 +35,7 @@
|
| %define workspace ebp+16 ; DCTELEM * workspace
|
| @@ -809,7 +728,7 @@
|
| push ebp
|
| Index: simd/jiss2fst-64.asm
|
| ===================================================================
|
| ---- simd/jiss2fst-64.asm (revision 722)
|
| +--- simd/jiss2fst-64.asm (revision 733)
|
| +++ simd/jiss2fst-64.asm (working copy)
|
| @@ -60,7 +60,7 @@
|
| %define CONST_SHIFT (16 - PRE_MULTIPLY_SCALE_BITS - CONST_BITS)
|
| @@ -831,7 +750,7 @@
|
| push rbp
|
| Index: simd/jiss2flt.asm
|
| ===================================================================
|
| ---- simd/jiss2flt.asm (revision 722)
|
| +--- simd/jiss2flt.asm (revision 733)
|
| +++ simd/jiss2flt.asm (working copy)
|
| @@ -37,7 +37,7 @@
|
| SECTION SEG_CONST
|
| @@ -853,7 +772,7 @@
|
| push ebp
|
| Index: simd/jiss2int.asm
|
| ===================================================================
|
| ---- simd/jiss2int.asm (revision 722)
|
| +--- simd/jiss2int.asm (revision 733)
|
| +++ simd/jiss2int.asm (working copy)
|
| @@ -66,7 +66,7 @@
|
| SECTION SEG_CONST
|
| @@ -875,7 +794,7 @@
|
| push ebp
|
| Index: simd/jfsseflt-64.asm
|
| ===================================================================
|
| ---- simd/jfsseflt-64.asm (revision 722)
|
| +--- simd/jfsseflt-64.asm (revision 733)
|
| +++ simd/jfsseflt-64.asm (working copy)
|
| @@ -38,7 +38,7 @@
|
| SECTION SEG_CONST
|
| @@ -897,7 +816,7 @@
|
| push rbp
|
| Index: simd/jccolss2-64.asm
|
| ===================================================================
|
| ---- simd/jccolss2-64.asm (revision 722)
|
| +--- simd/jccolss2-64.asm (revision 733)
|
| +++ simd/jccolss2-64.asm (working copy)
|
| @@ -34,7 +34,7 @@
|
| SECTION SEG_CONST
|
| @@ -910,7 +829,7 @@
|
|
|
| Index: simd/jcsamss2-64.asm
|
| ===================================================================
|
| ---- simd/jcsamss2-64.asm (revision 722)
|
| +--- simd/jcsamss2-64.asm (revision 733)
|
| +++ simd/jcsamss2-64.asm (working copy)
|
| @@ -41,7 +41,7 @@
|
| ; r15 = JSAMPARRAY output_data
|
| @@ -932,7 +851,7 @@
|
| push rbp
|
| Index: simd/jdclrss2-64.asm
|
| ===================================================================
|
| ---- simd/jdclrss2-64.asm (revision 722)
|
| +--- simd/jdclrss2-64.asm (revision 733)
|
| +++ simd/jdclrss2-64.asm (working copy)
|
| @@ -39,7 +39,7 @@
|
| %define WK_NUM 2
|
| @@ -943,90 +862,9 @@
|
|
|
| EXTN(jsimd_ycc_rgb_convert_sse2):
|
| push rbp
|
| -@@ -290,6 +290,41 @@
|
| - movdqa xmmA,xmmD
|
| - sub rcx, byte SIZEOF_XMMWORD
|
| - .column_st15:
|
| -+%ifdef STRICT_MEMORY_ACCESS
|
| -+ ; Store the lower 8 bytes of xmmA to the output when it has enough
|
| -+ ; space.
|
| -+ cmp rcx, byte SIZEOF_MMWORD
|
| -+ jb short .column_st7
|
| -+ movq MMWORD [rdi], xmmA
|
| -+ add rdi, byte SIZEOF_MMWORD
|
| -+ sub rcx, byte SIZEOF_MMWORD
|
| -+ psrldq xmmA, SIZEOF_MMWORD
|
| -+.column_st7:
|
| -+ ; Store the lower 4 bytes of xmmA to the output when it has enough
|
| -+ ; space.
|
| -+ cmp rcx, byte SIZEOF_DWORD
|
| -+ jb short .column_st3
|
| -+ movd DWORD [rdi], xmmA
|
| -+ add rdi, byte SIZEOF_DWORD
|
| -+ sub rcx, byte SIZEOF_DWORD
|
| -+ psrldq xmmA, SIZEOF_DWORD
|
| -+.column_st3:
|
| -+ ; Store the lower 2 bytes of rax to the output when it has enough
|
| -+ ; space.
|
| -+ movd rax, xmmA
|
| -+ cmp rcx, byte SIZEOF_WORD
|
| -+ jb short .column_st1
|
| -+ mov WORD [rdi], ax
|
| -+ add rdi, byte SIZEOF_WORD
|
| -+ sub rcx, byte SIZEOF_WORD
|
| -+ shr rax, 16
|
| -+.column_st1:
|
| -+ ; Store the lower 1 byte of rax to the output when it has enough
|
| -+ ; space.
|
| -+ test rcx, rcx
|
| -+ jz short .nextrow
|
| -+ mov BYTE [rdi], al
|
| -+%else
|
| - mov rax,rcx
|
| - xor rcx, byte 0x0F
|
| - shl rcx, 2
|
| -@@ -329,6 +364,7 @@
|
| - por xmmE,xmmC
|
| - .adj0: ; ----------------
|
| - maskmovdqu xmmA,xmmE ; movntdqu XMMWORD [rdi], xmmA
|
| -+%endif ; STRICT_MEMORY_ACCESS ; ---------------
|
| -
|
| - %else ; RGB_PIXELSIZE == 4 ; -----------
|
| -
|
| -@@ -413,6 +449,22 @@
|
| - movdqa xmmA,xmmD
|
| - sub rcx, byte SIZEOF_XMMWORD/4
|
| - .column_st15:
|
| -+%ifdef STRICT_MEMORY_ACCESS
|
| -+ ; Store two pixels (8 bytes) of xmmA to the output when it has enough
|
| -+ ; space.
|
| -+ cmp rcx, byte SIZEOF_XMMWORD/8
|
| -+ jb short .column_st7
|
| -+ movq MMWORD [rdi], xmmA
|
| -+ add rdi, byte SIZEOF_XMMWORD/8*4
|
| -+ sub rcx, byte SIZEOF_XMMWORD/8
|
| -+ psrldq xmmA, SIZEOF_XMMWORD/8*4
|
| -+.column_st7:
|
| -+ ; Store one pixel (4 bytes) of xmmA to the output when it has enough
|
| -+ ; space.
|
| -+ test rcx, rcx
|
| -+ jz short .nextrow
|
| -+ movd DWORD [rdi], xmmA
|
| -+%else
|
| - cmp rcx, byte SIZEOF_XMMWORD/16
|
| - jb near .nextrow
|
| - mov rax,rcx
|
| -@@ -452,6 +504,7 @@
|
| - por xmmE,xmmG
|
| - .adj0: ; ----------------
|
| - maskmovdqu xmmA,xmmE ; movntdqu XMMWORD [rdi], xmmA
|
| -+%endif ; STRICT_MEMORY_ACCESS ; ---------------
|
| -
|
| - %endif ; RGB_PIXELSIZE ; ---------------
|
| -
|
| Index: simd/jdcolmmx.asm
|
| ===================================================================
|
| ---- simd/jdcolmmx.asm (revision 722)
|
| +--- simd/jdcolmmx.asm (revision 733)
|
| +++ simd/jdcolmmx.asm (working copy)
|
| @@ -35,7 +35,7 @@
|
| SECTION SEG_CONST
|
| @@ -1039,7 +877,7 @@
|
|
|
| Index: simd/jcclrmmx.asm
|
| ===================================================================
|
| ---- simd/jcclrmmx.asm (revision 722)
|
| +--- simd/jcclrmmx.asm (revision 733)
|
| +++ simd/jcclrmmx.asm (working copy)
|
| @@ -40,7 +40,7 @@
|
| %define gotptr wk(0)-SIZEOF_POINTER ; void * gotptr
|
| @@ -1052,7 +890,7 @@
|
| push ebp
|
| Index: simd/jfsseflt.asm
|
| ===================================================================
|
| ---- simd/jfsseflt.asm (revision 722)
|
| +--- simd/jfsseflt.asm (revision 733)
|
| +++ simd/jfsseflt.asm (working copy)
|
| @@ -37,7 +37,7 @@
|
| SECTION SEG_CONST
|
| @@ -1074,7 +912,7 @@
|
| push ebp
|
| Index: simd/jdmrgss2-64.asm
|
| ===================================================================
|
| ---- simd/jdmrgss2-64.asm (revision 722)
|
| +--- simd/jdmrgss2-64.asm (revision 733)
|
| +++ simd/jdmrgss2-64.asm (working copy)
|
| @@ -39,7 +39,7 @@
|
| %define WK_NUM 3
|
| @@ -1085,88 +923,7 @@
|
|
|
| EXTN(jsimd_h2v1_merged_upsample_sse2):
|
| push rbp
|
| -@@ -294,6 +294,41 @@
|
| - movdqa xmmA,xmmD
|
| - sub rcx, byte SIZEOF_XMMWORD
|
| - .column_st15:
|
| -+%ifdef STRICT_MEMORY_ACCESS
|
| -+ ; Store the lower 8 bytes of xmmA to the output when it has enough
|
| -+ ; space.
|
| -+ cmp rcx, byte SIZEOF_MMWORD
|
| -+ jb short .column_st7
|
| -+ movq MMWORD [rdi], xmmA
|
| -+ add rdi, byte SIZEOF_MMWORD
|
| -+ sub rcx, byte SIZEOF_MMWORD
|
| -+ psrldq xmmA, SIZEOF_MMWORD
|
| -+.column_st7:
|
| -+ ; Store the lower 4 bytes of xmmA to the output when it has enough
|
| -+ ; space.
|
| -+ cmp rcx, byte SIZEOF_DWORD
|
| -+ jb short .column_st3
|
| -+ movd DWORD [rdi], xmmA
|
| -+ add rdi, byte SIZEOF_DWORD
|
| -+ sub rcx, byte SIZEOF_DWORD
|
| -+ psrldq xmmA, SIZEOF_DWORD
|
| -+.column_st3:
|
| -+ ; Store the lower 2 bytes of rax to the output when it has enough
|
| -+ ; space.
|
| -+ movd rax, xmmA
|
| -+ cmp rcx, byte SIZEOF_WORD
|
| -+ jb short .column_st1
|
| -+ mov WORD [rdi], ax
|
| -+ add rdi, byte SIZEOF_WORD
|
| -+ sub rcx, byte SIZEOF_WORD
|
| -+ shr rax, 16
|
| -+.column_st1:
|
| -+ ; Store the lower 1 byte of rax to the output when it has enough
|
| -+ ; space.
|
| -+ test rcx, rcx
|
| -+ jz short .endcolumn
|
| -+ mov BYTE [rdi], al
|
| -+%else
|
| - mov rax,rcx
|
| - xor rcx, byte 0x0F
|
| - shl rcx, 2
|
| -@@ -333,6 +368,7 @@
|
| - por xmmE,xmmC
|
| - .adj0: ; ----------------
|
| - maskmovdqu xmmA,xmmE ; movntdqu XMMWORD [edi], xmmA
|
| -+%endif ; STRICT_MEMORY_ACCESS ; ---------------
|
| -
|
| - %else ; RGB_PIXELSIZE == 4 ; -----------
|
| -
|
| -@@ -420,6 +456,22 @@
|
| - movdqa xmmA,xmmD
|
| - sub rcx, byte SIZEOF_XMMWORD/4
|
| - .column_st15:
|
| -+%ifdef STRICT_MEMORY_ACCESS
|
| -+ ; Store two pixels (8 bytes) of xmmA to the output when it has enough
|
| -+ ; space.
|
| -+ cmp rcx, byte SIZEOF_XMMWORD/8
|
| -+ jb short .column_st7
|
| -+ movq MMWORD [rdi], xmmA
|
| -+ add rdi, byte SIZEOF_XMMWORD/8*4
|
| -+ sub rcx, byte SIZEOF_XMMWORD/8
|
| -+ psrldq xmmA, SIZEOF_XMMWORD/8*4
|
| -+.column_st7:
|
| -+ ; Store one pixel (4 bytes) of xmmA to the output when it has enough
|
| -+ ; space.
|
| -+ test rcx, rcx
|
| -+ jz short .endcolumn
|
| -+ movd DWORD [rdi], xmmA
|
| -+%else
|
| - cmp rcx, byte SIZEOF_XMMWORD/16
|
| - jb near .endcolumn
|
| - mov rax,rcx
|
| -@@ -459,6 +511,7 @@
|
| - por xmmE,xmmG
|
| - .adj0: ; ----------------
|
| - maskmovdqu xmmA,xmmE ; movntdqu XMMWORD [edi], xmmA
|
| -+%endif ; STRICT_MEMORY_ACCESS ; ---------------
|
| -
|
| - %endif ; RGB_PIXELSIZE ; ---------------
|
| -
|
| -@@ -490,7 +543,7 @@
|
| +@@ -543,7 +543,7 @@
|
| ; r13 = JSAMPARRAY output_buf
|
|
|
| align 16
|
| @@ -1177,7 +934,7 @@
|
| push rbp
|
| Index: simd/jdmermmx.asm
|
| ===================================================================
|
| ---- simd/jdmermmx.asm (revision 722)
|
| +--- simd/jdmermmx.asm (revision 733)
|
| +++ simd/jdmermmx.asm (working copy)
|
| @@ -35,7 +35,7 @@
|
| SECTION SEG_CONST
|
| @@ -1190,7 +947,7 @@
|
|
|
| Index: simd/jdcolss2.asm
|
| ===================================================================
|
| ---- simd/jdcolss2.asm (revision 722)
|
| +--- simd/jdcolss2.asm (revision 733)
|
| +++ simd/jdcolss2.asm (working copy)
|
| @@ -35,7 +35,7 @@
|
| SECTION SEG_CONST
|
| @@ -1203,7 +960,7 @@
|
|
|
| Index: simd/jiss2red.asm
|
| ===================================================================
|
| ---- simd/jiss2red.asm (revision 722)
|
| +--- simd/jiss2red.asm (revision 733)
|
| +++ simd/jiss2red.asm (working copy)
|
| @@ -72,7 +72,7 @@
|
| SECTION SEG_CONST
|
| @@ -1234,7 +991,7 @@
|
| push ebp
|
| Index: simd/jcclrss2.asm
|
| ===================================================================
|
| ---- simd/jcclrss2.asm (revision 722)
|
| +--- simd/jcclrss2.asm (revision 733)
|
| +++ simd/jcclrss2.asm (working copy)
|
| @@ -38,7 +38,7 @@
|
|
|
| @@ -1247,7 +1004,7 @@
|
| push ebp
|
| Index: simd/jdmerss2.asm
|
| ===================================================================
|
| ---- simd/jdmerss2.asm (revision 722)
|
| +--- simd/jdmerss2.asm (revision 733)
|
| +++ simd/jdmerss2.asm (working copy)
|
| @@ -35,7 +35,7 @@
|
| SECTION SEG_CONST
|
| @@ -1260,7 +1017,7 @@
|
|
|
| Index: simd/jfss2fst-64.asm
|
| ===================================================================
|
| ---- simd/jfss2fst-64.asm (revision 722)
|
| +--- simd/jfss2fst-64.asm (revision 733)
|
| +++ simd/jfss2fst-64.asm (working copy)
|
| @@ -53,7 +53,7 @@
|
| %define CONST_SHIFT (16 - PRE_MULTIPLY_SCALE_BITS - CONST_BITS)
|
| @@ -1282,7 +1039,7 @@
|
| push rbp
|
| Index: simd/jimmxfst.asm
|
| ===================================================================
|
| ---- simd/jimmxfst.asm (revision 722)
|
| +--- simd/jimmxfst.asm (revision 733)
|
| +++ simd/jimmxfst.asm (working copy)
|
| @@ -59,7 +59,7 @@
|
| %define CONST_SHIFT (16 - PRE_MULTIPLY_SCALE_BITS - CONST_BITS)
|
| @@ -1304,7 +1061,7 @@
|
| push ebp
|
| Index: simd/jcqntmmx.asm
|
| ===================================================================
|
| ---- simd/jcqntmmx.asm (revision 722)
|
| +--- simd/jcqntmmx.asm (revision 733)
|
| +++ simd/jcqntmmx.asm (working copy)
|
| @@ -35,7 +35,7 @@
|
| %define workspace ebp+16 ; DCTELEM * workspace
|
| @@ -1326,7 +1083,7 @@
|
| push ebp
|
| Index: simd/jfss2fst.asm
|
| ===================================================================
|
| ---- simd/jfss2fst.asm (revision 722)
|
| +--- simd/jfss2fst.asm (revision 733)
|
| +++ simd/jfss2fst.asm (working copy)
|
| @@ -52,7 +52,7 @@
|
| %define CONST_SHIFT (16 - PRE_MULTIPLY_SCALE_BITS - CONST_BITS)
|
| @@ -1348,7 +1105,7 @@
|
| push ebp
|
| Index: simd/jcgrammx.asm
|
| ===================================================================
|
| ---- simd/jcgrammx.asm (revision 722)
|
| +--- simd/jcgrammx.asm (revision 733)
|
| +++ simd/jcgrammx.asm (working copy)
|
| @@ -33,7 +33,7 @@
|
| SECTION SEG_CONST
|
| @@ -1361,7 +1118,7 @@
|
|
|
| Index: simd/jf3dnflt.asm
|
| ===================================================================
|
| ---- simd/jf3dnflt.asm (revision 722)
|
| +--- simd/jf3dnflt.asm (revision 733)
|
| +++ simd/jf3dnflt.asm (working copy)
|
| @@ -27,7 +27,7 @@
|
| SECTION SEG_CONST
|
| @@ -1383,7 +1140,7 @@
|
| push ebp
|
| Index: simd/jdcolss2-64.asm
|
| ===================================================================
|
| ---- simd/jdcolss2-64.asm (revision 722)
|
| +--- simd/jdcolss2-64.asm (revision 733)
|
| +++ simd/jdcolss2-64.asm (working copy)
|
| @@ -35,7 +35,7 @@
|
| SECTION SEG_CONST
|
| @@ -1396,7 +1153,7 @@
|
|
|
| Index: simd/jdsamss2-64.asm
|
| ===================================================================
|
| ---- simd/jdsamss2-64.asm (revision 722)
|
| +--- simd/jdsamss2-64.asm (revision 733)
|
| +++ simd/jdsamss2-64.asm (working copy)
|
| @@ -23,7 +23,7 @@
|
| SECTION SEG_CONST
|
| @@ -1445,7 +1202,7 @@
|
| push rbp
|
| Index: simd/jcgrass2.asm
|
| ===================================================================
|
| ---- simd/jcgrass2.asm (revision 722)
|
| +--- simd/jcgrass2.asm (revision 733)
|
| +++ simd/jcgrass2.asm (working copy)
|
| @@ -30,7 +30,7 @@
|
| SECTION SEG_CONST
|
| @@ -1458,7 +1215,7 @@
|
|
|
| Index: simd/jcsammmx.asm
|
| ===================================================================
|
| ---- simd/jcsammmx.asm (revision 722)
|
| +--- simd/jcsammmx.asm (revision 733)
|
| +++ simd/jcsammmx.asm (working copy)
|
| @@ -40,7 +40,7 @@
|
| %define output_data(b) (b)+28 ; JSAMPARRAY output_data
|
| @@ -1480,7 +1237,7 @@
|
| push ebp
|
| Index: simd/jcqnts2f-64.asm
|
| ===================================================================
|
| ---- simd/jcqnts2f-64.asm (revision 722)
|
| +--- simd/jcqnts2f-64.asm (revision 733)
|
| +++ simd/jcqnts2f-64.asm (working copy)
|
| @@ -36,7 +36,7 @@
|
| ; r12 = FAST_FLOAT * workspace
|
| @@ -1502,7 +1259,7 @@
|
| push rbp
|
| Index: simd/jcqnt3dn.asm
|
| ===================================================================
|
| ---- simd/jcqnt3dn.asm (revision 722)
|
| +--- simd/jcqnt3dn.asm (revision 733)
|
| +++ simd/jcqnt3dn.asm (working copy)
|
| @@ -35,7 +35,7 @@
|
| %define workspace ebp+16 ; FAST_FLOAT * workspace
|
| @@ -1524,7 +1281,7 @@
|
| push ebp
|
| Index: simd/jcsamss2.asm
|
| ===================================================================
|
| ---- simd/jcsamss2.asm (revision 722)
|
| +--- simd/jcsamss2.asm (revision 733)
|
| +++ simd/jcsamss2.asm (working copy)
|
| @@ -40,7 +40,7 @@
|
| %define output_data(b) (b)+28 ; JSAMPARRAY output_data
|
| @@ -1546,7 +1303,7 @@
|
| push ebp
|
| Index: simd/jimmxint.asm
|
| ===================================================================
|
| ---- simd/jimmxint.asm (revision 722)
|
| +--- simd/jimmxint.asm (revision 733)
|
| +++ simd/jimmxint.asm (working copy)
|
| @@ -66,7 +66,7 @@
|
| SECTION SEG_CONST
|
| @@ -1568,7 +1325,7 @@
|
| push ebp
|
| Index: simd/jcgrymmx.asm
|
| ===================================================================
|
| ---- simd/jcgrymmx.asm (revision 722)
|
| +--- simd/jcgrymmx.asm (revision 733)
|
| +++ simd/jcgrymmx.asm (working copy)
|
| @@ -41,7 +41,7 @@
|
| %define gotptr wk(0)-SIZEOF_POINTER ; void * gotptr
|
| @@ -1581,7 +1338,7 @@
|
| push ebp
|
| Index: simd/jfss2int.asm
|
| ===================================================================
|
| ---- simd/jfss2int.asm (revision 722)
|
| +--- simd/jfss2int.asm (revision 733)
|
| +++ simd/jfss2int.asm (working copy)
|
| @@ -66,7 +66,7 @@
|
| SECTION SEG_CONST
|
| @@ -1603,7 +1360,7 @@
|
| push ebp
|
| Index: simd/jcgryss2.asm
|
| ===================================================================
|
| ---- simd/jcgryss2.asm (revision 722)
|
| +--- simd/jcgryss2.asm (revision 733)
|
| +++ simd/jcgryss2.asm (working copy)
|
| @@ -39,7 +39,7 @@
|
|
|
| @@ -1616,7 +1373,7 @@
|
| push ebp
|
| Index: simd/jccolmmx.asm
|
| ===================================================================
|
| ---- simd/jccolmmx.asm (revision 722)
|
| +--- simd/jccolmmx.asm (revision 733)
|
| +++ simd/jccolmmx.asm (working copy)
|
| @@ -37,7 +37,7 @@
|
| SECTION SEG_CONST
|
| @@ -1629,7 +1386,7 @@
|
|
|
| Index: simd/jimmxred.asm
|
| ===================================================================
|
| ---- simd/jimmxred.asm (revision 722)
|
| +--- simd/jimmxred.asm (revision 733)
|
| +++ simd/jimmxred.asm (working copy)
|
| @@ -72,7 +72,7 @@
|
| SECTION SEG_CONST
|
| @@ -1660,7 +1417,7 @@
|
| push ebp
|
| Index: simd/jsimdext.inc
|
| ===================================================================
|
| ---- simd/jsimdext.inc (revision 722)
|
| +--- simd/jsimdext.inc (revision 733)
|
| +++ simd/jsimdext.inc (working copy)
|
| @@ -73,6 +73,9 @@
|
| ; * *BSD family Unix using elf format
|
| @@ -1672,7 +1429,7 @@
|
| ; mark stack as non-executable
|
| section .note.GNU-stack noalloc noexec nowrite progbits
|
|
|
| -@@ -373,4 +376,14 @@
|
| +@@ -375,4 +378,14 @@
|
| ;
|
| %include "jsimdcfg.inc"
|
|
|
| @@ -1689,7 +1446,7 @@
|
| ; --------------------------------------------------------------------------
|
| Index: simd/jdclrmmx.asm
|
| ===================================================================
|
| ---- simd/jdclrmmx.asm (revision 722)
|
| +--- simd/jdclrmmx.asm (revision 733)
|
| +++ simd/jdclrmmx.asm (working copy)
|
| @@ -40,7 +40,7 @@
|
| %define gotptr wk(0)-SIZEOF_POINTER ; void * gotptr
|
| @@ -1702,7 +1459,7 @@
|
| push ebp
|
| Index: simd/jccolss2.asm
|
| ===================================================================
|
| ---- simd/jccolss2.asm (revision 722)
|
| +--- simd/jccolss2.asm (revision 733)
|
| +++ simd/jccolss2.asm (working copy)
|
| @@ -34,7 +34,7 @@
|
| SECTION SEG_CONST
|
| @@ -1715,7 +1472,7 @@
|
|
|
| Index: simd/jisseflt.asm
|
| ===================================================================
|
| ---- simd/jisseflt.asm (revision 722)
|
| +--- simd/jisseflt.asm (revision 733)
|
| +++ simd/jisseflt.asm (working copy)
|
| @@ -37,7 +37,7 @@
|
| SECTION SEG_CONST
|
| @@ -1737,7 +1494,7 @@
|
| push ebp
|
| Index: simd/jcqnts2i-64.asm
|
| ===================================================================
|
| ---- simd/jcqnts2i-64.asm (revision 722)
|
| +--- simd/jcqnts2i-64.asm (revision 733)
|
| +++ simd/jcqnts2i-64.asm (working copy)
|
| @@ -36,7 +36,7 @@
|
| ; r12 = DCTELEM * workspace
|
| @@ -1759,7 +1516,7 @@
|
| push rbp
|
| Index: simd/jdclrss2.asm
|
| ===================================================================
|
| ---- simd/jdclrss2.asm (revision 722)
|
| +--- simd/jdclrss2.asm (revision 733)
|
| +++ simd/jdclrss2.asm (working copy)
|
| @@ -40,7 +40,7 @@
|
| %define gotptr wk(0)-SIZEOF_POINTER ; void * gotptr
|
| @@ -1770,90 +1527,9 @@
|
|
|
| EXTN(jsimd_ycc_rgb_convert_sse2):
|
| push ebp
|
| -@@ -302,6 +302,41 @@
|
| - movdqa xmmA,xmmD
|
| - sub ecx, byte SIZEOF_XMMWORD
|
| - .column_st15:
|
| -+%ifdef STRICT_MEMORY_ACCESS
|
| -+ ; Store the lower 8 bytes of xmmA to the output when it has enough
|
| -+ ; space.
|
| -+ cmp ecx, byte SIZEOF_MMWORD
|
| -+ jb short .column_st7
|
| -+ movq MMWORD [edi], xmmA
|
| -+ add edi, byte SIZEOF_MMWORD
|
| -+ sub ecx, byte SIZEOF_MMWORD
|
| -+ psrldq xmmA, SIZEOF_MMWORD
|
| -+.column_st7:
|
| -+ ; Store the lower 4 bytes of xmmA to the output when it has enough
|
| -+ ; space.
|
| -+ cmp ecx, byte SIZEOF_DWORD
|
| -+ jb short .column_st3
|
| -+ movd DWORD [edi], xmmA
|
| -+ add edi, byte SIZEOF_DWORD
|
| -+ sub ecx, byte SIZEOF_DWORD
|
| -+ psrldq xmmA, SIZEOF_DWORD
|
| -+.column_st3:
|
| -+ ; Store the lower 2 bytes of eax to the output when it has enough
|
| -+ ; space.
|
| -+ movd eax, xmmA
|
| -+ cmp ecx, byte SIZEOF_WORD
|
| -+ jb short .column_st1
|
| -+ mov WORD [edi], ax
|
| -+ add edi, byte SIZEOF_WORD
|
| -+ sub ecx, byte SIZEOF_WORD
|
| -+ shr eax, 16
|
| -+.column_st1:
|
| -+ ; Store the lower 1 byte of eax to the output when it has enough
|
| -+ ; space.
|
| -+ test ecx, ecx
|
| -+ jz short .nextrow
|
| -+ mov BYTE [edi], al
|
| -+%else
|
| - mov eax,ecx
|
| - xor ecx, byte 0x0F
|
| - shl ecx, 2
|
| -@@ -341,6 +376,7 @@
|
| - por xmmE,xmmC
|
| - .adj0: ; ----------------
|
| - maskmovdqu xmmA,xmmE ; movntdqu XMMWORD [edi], xmmA
|
| -+%endif ; STRICT_MEMORY_ACCESS ; ---------------
|
| -
|
| - %else ; RGB_PIXELSIZE == 4 ; -----------
|
| -
|
| -@@ -426,6 +462,22 @@
|
| - movdqa xmmA,xmmD
|
| - sub ecx, byte SIZEOF_XMMWORD/4
|
| - .column_st15:
|
| -+%ifdef STRICT_MEMORY_ACCESS
|
| -+ ; Store two pixels (8 bytes) of xmmA to the output when it has enough
|
| -+ ; space.
|
| -+ cmp ecx, byte SIZEOF_XMMWORD/8
|
| -+ jb short .column_st7
|
| -+ movq MMWORD [edi], xmmA
|
| -+ add edi, byte SIZEOF_XMMWORD/8*4
|
| -+ sub ecx, byte SIZEOF_XMMWORD/8
|
| -+ psrldq xmmA, SIZEOF_XMMWORD/8*4
|
| -+.column_st7:
|
| -+ ; Store one pixel (4 bytes) of xmmA to the output when it has enough
|
| -+ ; space.
|
| -+ test ecx, ecx
|
| -+ jz short .nextrow
|
| -+ movd DWORD [edi], xmmA
|
| -+%else
|
| - cmp ecx, byte SIZEOF_XMMWORD/16
|
| - jb short .nextrow
|
| - mov eax,ecx
|
| -@@ -465,6 +517,7 @@
|
| - por xmmE,xmmG
|
| - .adj0: ; ----------------
|
| - maskmovdqu xmmA,xmmE ; movntdqu XMMWORD [edi], xmmA
|
| -+%endif ; STRICT_MEMORY_ACCESS ; ---------------
|
| -
|
| - %endif ; RGB_PIXELSIZE ; ---------------
|
| -
|
| Index: simd/jcqntsse.asm
|
| ===================================================================
|
| ---- simd/jcqntsse.asm (revision 722)
|
| +--- simd/jcqntsse.asm (revision 733)
|
| +++ simd/jcqntsse.asm (working copy)
|
| @@ -35,7 +35,7 @@
|
| %define workspace ebp+16 ; FAST_FLOAT * workspace
|
| @@ -1875,7 +1551,7 @@
|
| push ebp
|
| Index: simd/jiss2int-64.asm
|
| ===================================================================
|
| ---- simd/jiss2int-64.asm (revision 722)
|
| +--- simd/jiss2int-64.asm (revision 733)
|
| +++ simd/jiss2int-64.asm (working copy)
|
| @@ -67,7 +67,7 @@
|
| SECTION SEG_CONST
|
| @@ -1897,7 +1573,7 @@
|
| push rbp
|
| Index: simd/jfmmxfst.asm
|
| ===================================================================
|
| ---- simd/jfmmxfst.asm (revision 722)
|
| +--- simd/jfmmxfst.asm (revision 733)
|
| +++ simd/jfmmxfst.asm (working copy)
|
| @@ -52,7 +52,7 @@
|
| %define CONST_SHIFT (16 - PRE_MULTIPLY_SCALE_BITS - CONST_BITS)
|
| @@ -1919,7 +1595,7 @@
|
| push ebp
|
| Index: jdarith.c
|
| ===================================================================
|
| ---- jdarith.c (revision 722)
|
| +--- jdarith.c (revision 733)
|
| +++ jdarith.c (working copy)
|
| @@ -150,8 +150,8 @@
|
| */
|
| @@ -1934,7 +1610,7 @@
|
| temp = e->a - qe;
|
| Index: jdhuff.c
|
| ===================================================================
|
| ---- jdhuff.c (revision 722)
|
| +--- jdhuff.c (revision 733)
|
| +++ jdhuff.c (working copy)
|
| @@ -742,7 +742,7 @@
|
| * this module, since we'll just re-assign them on the next call.)
|
|
|