configure: x86: Separate inline from standalone assembler capabilities
This commit is contained in:
		
							parent
							
								
									21411a4102
								
							
						
					
					
						commit
						43b73d59a8
					
				
							
								
								
									
										27
									
								
								configure
									
									
									
									
										vendored
									
									
								
							
							
						
						
									
										27
									
								
								configure
									
									
									
									
										vendored
									
									
								
							| @ -373,6 +373,12 @@ map(){ | ||||
|     for v; do eval $m; done | ||||
| } | ||||
| 
 | ||||
| add_suffix(){ | ||||
|     suffix=$1 | ||||
|     shift | ||||
|     for v; do echo ${v}${suffix}; done | ||||
| } | ||||
| 
 | ||||
| set_all(){ | ||||
|     value=$1 | ||||
|     shift | ||||
| @ -1101,6 +1107,8 @@ HAVE_LIST_PUB=' | ||||
| 
 | ||||
| HAVE_LIST=" | ||||
|     $ARCH_EXT_LIST | ||||
|     $(add_suffix _external $ARCH_EXT_LIST) | ||||
|     $(add_suffix _inline   $ARCH_EXT_LIST) | ||||
|     $HAVE_LIST_PUB | ||||
|     $THREADS_LIST | ||||
|     aligned_malloc | ||||
| @ -1351,6 +1359,17 @@ sse42_deps="sse4" | ||||
| avx_deps="sse42" | ||||
| fma4_deps="avx" | ||||
| 
 | ||||
| mmx_external_deps="yasm" | ||||
| mmx_inline_deps="inline_asm" | ||||
| mmx_suggest="mmx_external mmx_inline" | ||||
| 
 | ||||
| for ext in $(filter_out mmx $ARCH_EXT_LIST_X86); do | ||||
|     eval dep=\$${ext}_deps | ||||
|     eval ${ext}_external_deps='"${dep}_external"' | ||||
|     eval ${ext}_inline_deps='"${dep}_inline"' | ||||
|     eval ${ext}_suggest='"${ext}_external ${ext}_inline"' | ||||
| done | ||||
| 
 | ||||
| aligned_stack_if_any="ppc x86" | ||||
| fast_64bit_if_any="alpha ia64 mips64 parisc64 ppc64 sparc64 x86_64" | ||||
| fast_clz_if_any="alpha armv5te avr32 mips ppc x86" | ||||
| @ -2964,8 +2983,8 @@ EOF | ||||
|     check_inline_asm xmm_clobbers '"":::"%xmm0"' | ||||
| 
 | ||||
|     # check whether binutils is new enough to compile SSSE3/MMXEXT | ||||
|     enabled ssse3  && check_inline_asm ssse3  '"pabsw %xmm0, %xmm0"' | ||||
|     enabled mmxext && check_inline_asm mmxext '"pmaxub %mm0, %mm1"' | ||||
|     enabled ssse3  && check_inline_asm ssse3_inline  '"pabsw %xmm0, %xmm0"' | ||||
|     enabled mmxext && check_inline_asm mmxext_inline '"pmaxub %mm0, %mm1"' | ||||
| 
 | ||||
|     if ! disabled_any asm mmx yasm; then | ||||
|         if check_cmd $yasmexe --version; then | ||||
| @ -2986,8 +3005,8 @@ EOF | ||||
| 
 | ||||
|         check_yasm "pextrd [eax], xmm0, 1" && enable yasm || | ||||
|             die "yasm not found, use --disable-yasm for a crippled build" | ||||
|         check_yasm "vextractf128 xmm0, ymm0, 0" || disable avx | ||||
|         check_yasm "vfmaddps ymm0, ymm1, ymm2, ymm3" || disable fma4 | ||||
|         check_yasm "vextractf128 xmm0, ymm0, 0"      || disable avx_external | ||||
|         check_yasm "vfmaddps ymm0, ymm1, ymm2, ymm3" || disable fma4_external | ||||
|         check_yasm "CPU amdnop" && enable cpunop | ||||
|     fi | ||||
| 
 | ||||
|  | ||||
		Loading…
	
	
			
			x
			
			
		
	
		Reference in New Issue
	
	Block a user