| 
																	
																	
																	
																 | 
																@@ -1,7 +1,7 @@ | 
															
														
														
													
														
															
																 | 
																 | 
																;***************************************************************************** | 
																 | 
																 | 
																;***************************************************************************** | 
															
														
														
													
														
															
																 | 
																 | 
																;* x86inc.asm: x264asm abstraction layer | 
																 | 
																 | 
																;* x86inc.asm: x264asm abstraction layer | 
															
														
														
													
														
															
																 | 
																 | 
																;***************************************************************************** | 
																 | 
																 | 
																;***************************************************************************** | 
															
														
														
													
														
															
																 | 
																 | 
																;* Copyright (C) 2005-2013 x264 project | 
																 | 
																 | 
																 | 
															
														
														
													
														
															
																 | 
																 | 
																 | 
																 | 
																 | 
																;* Copyright (C) 2005-2015 x264 project | 
															
														
														
													
														
															
																 | 
																 | 
																;* | 
																 | 
																 | 
																;* | 
															
														
														
													
														
															
																 | 
																 | 
																;* Authors: Loren Merritt <lorenm@u.washington.edu> | 
																 | 
																 | 
																;* Authors: Loren Merritt <lorenm@u.washington.edu> | 
															
														
														
													
														
															
																 | 
																 | 
																;*          Anton Mitrofanov <BugMaster@narod.ru> | 
																 | 
																 | 
																;*          Anton Mitrofanov <BugMaster@narod.ru> | 
															
														
														
													
												
													
														
															
																| 
																	
																		
																	
																	
																		
																	
																	
																 | 
																@@ -56,6 +56,15 @@ | 
															
														
														
													
														
															
																 | 
																 | 
																    %endif | 
																 | 
																 | 
																    %endif | 
															
														
														
													
														
															
																 | 
																 | 
																%endif | 
																 | 
																 | 
																%endif | 
															
														
														
													
														
															
																 | 
																 | 
																
  | 
																 | 
																 | 
																
  | 
															
														
														
													
														
															
																 | 
																 | 
																 | 
																 | 
																 | 
																%define FORMAT_ELF 0 | 
															
														
														
													
														
															
																 | 
																 | 
																 | 
																 | 
																 | 
																%ifidn __OUTPUT_FORMAT__,elf | 
															
														
														
													
														
															
																 | 
																 | 
																 | 
																 | 
																 | 
																    %define FORMAT_ELF 1 | 
															
														
														
													
														
															
																 | 
																 | 
																 | 
																 | 
																 | 
																%elifidn __OUTPUT_FORMAT__,elf32 | 
															
														
														
													
														
															
																 | 
																 | 
																 | 
																 | 
																 | 
																    %define FORMAT_ELF 1 | 
															
														
														
													
														
															
																 | 
																 | 
																 | 
																 | 
																 | 
																%elifidn __OUTPUT_FORMAT__,elf64 | 
															
														
														
													
														
															
																 | 
																 | 
																 | 
																 | 
																 | 
																    %define FORMAT_ELF 1 | 
															
														
														
													
														
															
																 | 
																 | 
																 | 
																 | 
																 | 
																%endif | 
															
														
														
													
														
															
																 | 
																 | 
																 | 
																 | 
																 | 
																
  | 
															
														
														
													
														
															
																 | 
																 | 
																%ifdef PREFIX | 
																 | 
																 | 
																%ifdef PREFIX | 
															
														
														
													
														
															
																 | 
																 | 
																    %define mangle(x) _ %+ x | 
																 | 
																 | 
																    %define mangle(x) _ %+ x | 
															
														
														
													
														
															
																 | 
																 | 
																%else | 
																 | 
																 | 
																%else | 
															
														
														
													
												
													
														
															
																| 
																	
																		
																	
																	
																		
																	
																	
																 | 
																@@ -678,7 +687,7 @@ BRANCH_INSTR jz, je, jnz, jne, jl, jle, jnl, jnle, jg, jge, jng, jnge, ja, jae, | 
															
														
														
													
														
															
																 | 
																 | 
																        CAT_XDEFINE cglobaled_, %2, 1 | 
																 | 
																 | 
																        CAT_XDEFINE cglobaled_, %2, 1 | 
															
														
														
													
														
															
																 | 
																 | 
																    %endif | 
																 | 
																 | 
																    %endif | 
															
														
														
													
														
															
																 | 
																 | 
																    %xdefine current_function %2 | 
																 | 
																 | 
																    %xdefine current_function %2 | 
															
														
														
													
														
															
																 | 
																 | 
																    %ifidn __OUTPUT_FORMAT__,elf | 
																 | 
																 | 
																 | 
															
														
														
													
														
															
																 | 
																 | 
																 | 
																 | 
																 | 
																    %if FORMAT_ELF | 
															
														
														
													
														
															
																 | 
																 | 
																        global %2:function %%VISIBILITY | 
																 | 
																 | 
																        global %2:function %%VISIBILITY | 
															
														
														
													
														
															
																 | 
																 | 
																    %else | 
																 | 
																 | 
																    %else | 
															
														
														
													
														
															
																 | 
																 | 
																        global %2 | 
																 | 
																 | 
																        global %2 | 
															
														
														
													
												
													
														
															
																| 
																	
																	
																	
																		
																	
																 | 
																@@ -704,14 +713,16 @@ BRANCH_INSTR jz, je, jnz, jne, jl, jle, jnl, jnle, jg, jge, jng, jnge, ja, jae, | 
															
														
														
													
														
															
																 | 
																 | 
																
  | 
																 | 
																 | 
																
  | 
															
														
														
													
														
															
																 | 
																 | 
																; like cextern, but without the prefix | 
																 | 
																 | 
																; like cextern, but without the prefix | 
															
														
														
													
														
															
																 | 
																 | 
																%macro cextern_naked 1 | 
																 | 
																 | 
																%macro cextern_naked 1 | 
															
														
														
													
														
															
																 | 
																 | 
																    %xdefine %1 mangle(%1) | 
																 | 
																 | 
																 | 
															
														
														
													
														
															
																 | 
																 | 
																 | 
																 | 
																 | 
																    %ifdef PREFIX | 
															
														
														
													
														
															
																 | 
																 | 
																 | 
																 | 
																 | 
																        %xdefine %1 mangle(%1) | 
															
														
														
													
														
															
																 | 
																 | 
																 | 
																 | 
																 | 
																    %endif | 
															
														
														
													
														
															
																 | 
																 | 
																    CAT_XDEFINE cglobaled_, %1, 1 | 
																 | 
																 | 
																    CAT_XDEFINE cglobaled_, %1, 1 | 
															
														
														
													
														
															
																 | 
																 | 
																    extern %1 | 
																 | 
																 | 
																    extern %1 | 
															
														
														
													
														
															
																 | 
																 | 
																%endmacro | 
																 | 
																 | 
																%endmacro | 
															
														
														
													
														
															
																 | 
																 | 
																
  | 
																 | 
																 | 
																
  | 
															
														
														
													
														
															
																 | 
																 | 
																%macro const 1-2+ | 
																 | 
																 | 
																%macro const 1-2+ | 
															
														
														
													
														
															
																 | 
																 | 
																    %xdefine %1 mangle(private_prefix %+ _ %+ %1) | 
																 | 
																 | 
																    %xdefine %1 mangle(private_prefix %+ _ %+ %1) | 
															
														
														
													
														
															
																 | 
																 | 
																    %ifidn __OUTPUT_FORMAT__,elf | 
																 | 
																 | 
																 | 
															
														
														
													
														
															
																 | 
																 | 
																 | 
																 | 
																 | 
																    %if FORMAT_ELF | 
															
														
														
													
														
															
																 | 
																 | 
																        global %1:data hidden | 
																 | 
																 | 
																        global %1:data hidden | 
															
														
														
													
														
															
																 | 
																 | 
																    %else | 
																 | 
																 | 
																    %else | 
															
														
														
													
														
															
																 | 
																 | 
																        global %1 | 
																 | 
																 | 
																        global %1 | 
															
														
														
													
												
													
														
															
																| 
																	
																	
																	
																		
																	
																 | 
																@@ -719,10 +730,9 @@ BRANCH_INSTR jz, je, jnz, jne, jl, jle, jnl, jnle, jg, jge, jng, jnge, ja, jae, | 
															
														
														
													
														
															
																 | 
																 | 
																    %1: %2 | 
																 | 
																 | 
																    %1: %2 | 
															
														
														
													
														
															
																 | 
																 | 
																%endmacro | 
																 | 
																 | 
																%endmacro | 
															
														
														
													
														
															
																 | 
																 | 
																
  | 
																 | 
																 | 
																
  | 
															
														
														
													
														
															
																 | 
																 | 
																; This is needed for ELF, otherwise the GNU linker assumes the stack is | 
																 | 
																 | 
																 | 
															
														
														
													
														
															
																 | 
																 | 
																; executable by default. | 
																 | 
																 | 
																 | 
															
														
														
													
														
															
																 | 
																 | 
																%ifidn __OUTPUT_FORMAT__,elf | 
																 | 
																 | 
																 | 
															
														
														
													
														
															
																 | 
																 | 
																[section .note.GNU-stack noalloc noexec nowrite progbits] | 
																 | 
																 | 
																 | 
															
														
														
													
														
															
																 | 
																 | 
																 | 
																 | 
																 | 
																; This is needed for ELF, otherwise the GNU linker assumes the stack is executable by default. | 
															
														
														
													
														
															
																 | 
																 | 
																 | 
																 | 
																 | 
																%if FORMAT_ELF | 
															
														
														
													
														
															
																 | 
																 | 
																 | 
																 | 
																 | 
																    [SECTION .note.GNU-stack noalloc noexec nowrite progbits] | 
															
														
														
													
														
															
																 | 
																 | 
																%endif | 
																 | 
																 | 
																%endif | 
															
														
														
													
														
															
																 | 
																 | 
																
  | 
																 | 
																 | 
																
  | 
															
														
														
													
														
															
																 | 
																 | 
																; Overrides the default .text section. | 
																 | 
																 | 
																; Overrides the default .text section. | 
															
														
														
													
												
													
														
															
																| 
																	
																	
																	
																		
																	
																 | 
																@@ -745,8 +755,8 @@ BRANCH_INSTR jz, je, jnz, jne, jl, jle, jnl, jnle, jg, jge, jng, jnge, ja, jae, | 
															
														
														
													
														
															
																 | 
																 | 
																%assign cpuflags_avx      (1<<11)| cpuflags_sse42 | 
																 | 
																 | 
																%assign cpuflags_avx      (1<<11)| cpuflags_sse42 | 
															
														
														
													
														
															
																 | 
																 | 
																%assign cpuflags_xop      (1<<12)| cpuflags_avx | 
																 | 
																 | 
																%assign cpuflags_xop      (1<<12)| cpuflags_avx | 
															
														
														
													
														
															
																 | 
																 | 
																%assign cpuflags_fma4     (1<<13)| cpuflags_avx | 
																 | 
																 | 
																%assign cpuflags_fma4     (1<<13)| cpuflags_avx | 
															
														
														
													
														
															
																 | 
																 | 
																%assign cpuflags_avx2     (1<<14)| cpuflags_avx | 
																 | 
																 | 
																 | 
															
														
														
													
														
															
																 | 
																 | 
																%assign cpuflags_fma3     (1<<15)| cpuflags_avx | 
																 | 
																 | 
																 | 
															
														
														
													
														
															
																 | 
																 | 
																 | 
																 | 
																 | 
																%assign cpuflags_fma3     (1<<14)| cpuflags_avx | 
															
														
														
													
														
															
																 | 
																 | 
																 | 
																 | 
																 | 
																%assign cpuflags_avx2     (1<<15)| cpuflags_fma3 | 
															
														
														
													
														
															
																 | 
																 | 
																
  | 
																 | 
																 | 
																
  | 
															
														
														
													
														
															
																 | 
																 | 
																%assign cpuflags_cache32  (1<<16) | 
																 | 
																 | 
																%assign cpuflags_cache32  (1<<16) | 
															
														
														
													
														
															
																 | 
																 | 
																%assign cpuflags_cache64  (1<<17) | 
																 | 
																 | 
																%assign cpuflags_cache64  (1<<17) | 
															
														
														
													
												
													
														
															
																| 
																	
																		
																	
																	
																		
																	
																	
																 | 
																@@ -795,7 +805,7 @@ BRANCH_INSTR jz, je, jnz, jne, jl, jle, jnl, jnle, jg, jge, jng, jnge, ja, jae, | 
															
														
														
													
														
															
																 | 
																 | 
																        %endif | 
																 | 
																 | 
																        %endif | 
															
														
														
													
														
															
																 | 
																 | 
																    %endif | 
																 | 
																 | 
																    %endif | 
															
														
														
													
														
															
																 | 
																 | 
																
  | 
																 | 
																 | 
																
  | 
															
														
														
													
														
															
																 | 
																 | 
																    %if cpuflag(sse2) | 
																 | 
																 | 
																 | 
															
														
														
													
														
															
																 | 
																 | 
																 | 
																 | 
																 | 
																    %if ARCH_X86_64 || cpuflag(sse2) | 
															
														
														
													
														
															
																 | 
																 | 
																        CPUNOP amdnop | 
																 | 
																 | 
																        CPUNOP amdnop | 
															
														
														
													
														
															
																 | 
																 | 
																    %else | 
																 | 
																 | 
																    %else | 
															
														
														
													
														
															
																 | 
																 | 
																        CPUNOP basicnop | 
																 | 
																 | 
																        CPUNOP basicnop | 
															
														
														
													
												
													
														
															
																| 
																	
																		
																	
																	
																	
																 | 
																
  |