| @@ -660,8 +660,8 @@ check_as(){ | |||||
| check_cmd $as $CPPFLAGS $ASFLAGS "$@" $AS_C -o $TMPO $TMPC | check_cmd $as $CPPFLAGS $ASFLAGS "$@" $AS_C -o $TMPO $TMPC | ||||
| } | } | ||||
| check_asm(){ | |||||
| log check_asm "$@" | |||||
| check_inline_asm(){ | |||||
| log check_inline_asm "$@" | |||||
| name="$1" | name="$1" | ||||
| code="$2" | code="$2" | ||||
| shift 2 | shift 2 | ||||
| @@ -2833,31 +2833,31 @@ EOF | |||||
| warn "Compiler does not indicate floating-point ABI, guessing $fpabi." | warn "Compiler does not indicate floating-point ABI, guessing $fpabi." | ||||
| fi | fi | ||||
| enabled armv5te && check_asm armv5te '"qadd r0, r0, r0"' | |||||
| enabled armv6 && check_asm armv6 '"sadd16 r0, r0, r0"' | |||||
| enabled armv6t2 && check_asm armv6t2 '"movt r0, #0"' | |||||
| enabled armvfp && check_asm armvfp '"fadds s0, s0, s0"' | |||||
| enabled neon && check_asm neon '"vadd.i16 q0, q0, q0"' | |||||
| enabled vfpv3 && check_asm vfpv3 '"vmov.f32 s0, #1.0"' | |||||
| enabled armv5te && check_inline_asm armv5te '"qadd r0, r0, r0"' | |||||
| enabled armv6 && check_inline_asm armv6 '"sadd16 r0, r0, r0"' | |||||
| enabled armv6t2 && check_inline_asm armv6t2 '"movt r0, #0"' | |||||
| enabled armvfp && check_inline_asm armvfp '"fadds s0, s0, s0"' | |||||
| enabled neon && check_inline_asm neon '"vadd.i16 q0, q0, q0"' | |||||
| enabled vfpv3 && check_inline_asm vfpv3 '"vmov.f32 s0, #1.0"' | |||||
| check_asm asm_mod_q '"add r0, %Q0, %R0" :: "r"((long long)0)' | |||||
| check_asm asm_mod_y '"vmul.i32 d0, d0, %y0" :: "x"(0)' | |||||
| check_inline_asm asm_mod_q '"add r0, %Q0, %R0" :: "r"((long long)0)' | |||||
| check_inline_asm asm_mod_y '"vmul.i32 d0, d0, %y0" :: "x"(0)' | |||||
| enabled_all armv6t2 shared !pic && enable_pic | enabled_all armv6t2 shared !pic && enable_pic | ||||
| elif enabled mips; then | elif enabled mips; then | ||||
| check_asm loongson '"dmult.g $1, $2, $3"' | |||||
| enabled mmi && check_asm mmi '"lq $2, 0($2)"' | |||||
| check_inline_asm loongson '"dmult.g $1, $2, $3"' | |||||
| enabled mmi && check_inline_asm mmi '"lq $2, 0($2)"' | |||||
| elif enabled ppc; then | elif enabled ppc; then | ||||
| enable local_aligned_8 local_aligned_16 | enable local_aligned_8 local_aligned_16 | ||||
| check_asm dcbzl '"dcbzl 0, %0" :: "r"(0)' | |||||
| check_asm ibm_asm '"add 0, 0, 0"' | |||||
| check_asm ppc4xx '"maclhw r10, r11, r12"' | |||||
| check_asm xform_asm '"lwzx %1, %y0" :: "Z"(*(int*)0), "r"(0)' | |||||
| check_inline_asm dcbzl '"dcbzl 0, %0" :: "r"(0)' | |||||
| check_inline_asm ibm_asm '"add 0, 0, 0"' | |||||
| check_inline_asm ppc4xx '"maclhw r10, r11, r12"' | |||||
| check_inline_asm xform_asm '"lwzx %1, %y0" :: "Z"(*(int*)0), "r"(0)' | |||||
| # AltiVec flags: The FSF version of GCC differs from the Apple version | # AltiVec flags: The FSF version of GCC differs from the Apple version | ||||
| if enabled altivec; then | if enabled altivec; then | ||||
| @@ -2885,7 +2885,8 @@ EOF | |||||
| elif enabled sparc; then | elif enabled sparc; then | ||||
| enabled vis && check_asm vis '"pdist %f0, %f0, %f0"' -mcpu=ultrasparc && | |||||
| enabled vis && | |||||
| check_inline_asm vis '"pdist %f0, %f0, %f0"' -mcpu=ultrasparc && | |||||
| add_cflags -mcpu=ultrasparc -mtune=ultrasparc | add_cflags -mcpu=ultrasparc -mtune=ultrasparc | ||||
| elif enabled x86; then | elif enabled x86; then | ||||
| @@ -2912,15 +2913,15 @@ elif enabled x86; then | |||||
| EOF | EOF | ||||
| # check whether EBX is available on x86 | # check whether EBX is available on x86 | ||||
| check_asm ebx_available '""::"b"(0)' && | |||||
| check_asm ebx_available '"":::"%ebx"' | |||||
| check_inline_asm ebx_available '""::"b"(0)' && | |||||
| check_inline_asm ebx_available '"":::"%ebx"' | |||||
| # check whether xmm clobbers are supported | # check whether xmm clobbers are supported | ||||
| check_asm xmm_clobbers '"":::"%xmm0"' | |||||
| check_inline_asm xmm_clobbers '"":::"%xmm0"' | |||||
| # check whether binutils is new enough to compile SSSE3/MMXEXT | # check whether binutils is new enough to compile SSSE3/MMXEXT | ||||
| enabled ssse3 && check_asm ssse3 '"pabsw %xmm0, %xmm0"' | |||||
| enabled mmxext && check_asm mmxext '"pmaxub %mm0, %mm1"' | |||||
| enabled ssse3 && check_inline_asm ssse3 '"pabsw %xmm0, %xmm0"' | |||||
| enabled mmxext && check_inline_asm mmxext '"pmaxub %mm0, %mm1"' | |||||
| if ! disabled_any asm mmx yasm; then | if ! disabled_any asm mmx yasm; then | ||||
| if check_cmd $yasmexe --version; then | if check_cmd $yasmexe --version; then | ||||
| @@ -2956,7 +2957,7 @@ fi | |||||
| if enabled asm; then | if enabled asm; then | ||||
| as=${gas:=$as} | as=${gas:=$as} | ||||
| check_asm gnu_as '".macro m n\n\\n:.int 0\n.endm\nm x"' || | |||||
| check_inline_asm gnu_as '".macro m n\n\\n:.int 0\n.endm\nm x"' || | |||||
| $nogas "GNU assembler not found, install gas-preprocessor" | $nogas "GNU assembler not found, install gas-preprocessor" | ||||
| fi | fi | ||||