Revision 6f74fb03

View differences:

configure
1074 1074
    VirtualAlloc
1075 1075
    winsock2_h
1076 1076
    xform_asm
1077
    xmm_clobbers
1077 1078
    yasm
1078 1079
"
1079 1080

  
......
2585 2586
    check_asm ebx_available '""::"b"(0)' &&
2586 2587
        check_asm ebx_available '"":::"%ebx"'
2587 2588

  
2589
    # check whether xmm clobbers are supported
2590
    check_asm xmm_clobbers '"":::"%xmm0"'
2591

  
2588 2592
    # check whether more than 10 operands are supported
2589 2593
    check_cc <<EOF && enable ten_operands
2590 2594
int main(void) {
libavutil/x86_cpu.h
75 75
#    define BROKEN_RELOCATIONS 1
76 76
#endif
77 77

  
78
/*
79
 * If gcc is not set to support sse (-msse) it will not accept xmm registers
80
 * in the clobber list for inline asm. XMM_CLOBBERS takes a list of xmm
81
 * registers to be marked as clobbered and evaluates to nothing if they are
82
 * not supported, or to the list itself if they are supported. Since a clobber
83
 * list may not be empty, XMM_CLOBBERS_ONLY should be used if the xmm
84
 * registers are the only in the clobber list.
85
 * For example a list with "eax" and "xmm0" as clobbers should become:
86
 * : XMM_CLOBBERS("xmm0",) "eax"
87
 * and a list with only "xmm0" should become:
88
 * XMM_CLOBBERS_ONLY("xmm0")
89
 */
90
#if HAVE_XMM_CLOBBERS
91
#    define XMM_CLOBBERS(...)        __VA_ARGS__
92
#    define XMM_CLOBBERS_ONLY(...) : __VA_ARGS__
93
#else
94
#    define XMM_CLOBBERS(...)
95
#    define XMM_CLOBBERS_ONLY(...)
96
#endif
97

  
78 98
#endif /* AVUTIL_X86_CPU_H */

Also available in: Unified diff