Gentoo Websites Logo
Go to: Gentoo Home Documentation Forums Lists Bugs Planet Store Wiki Get Gentoo!
View | Details | Raw Unified | Return to bug 452484
Collapse All | Expand All

(-)file_not_specified_in_diff (-2 / +12 lines)
Line  Link Here
0
-- a/configure
0
++ b/configure
Lines 1274-1280 echo "yes" Link Here
1274
if test -z "$_target" && x86 ; then
1274
if test -z "$_target" && x86 ; then
1275
  cat > $TMPC << EOF
1275
  cat > $TMPC << EOF
1276
int main(void) {
1276
int main(void) {
1277
#ifndef __x86_64__
1277
    int test[(int)sizeof(char *)-7];
1278
    int test[(int)sizeof(char *)-7];
1279
#endif
1278
    return 0;
1280
    return 0;
1279
}
1281
}
1280
EOF
1282
EOF
Lines 1393-1399 fi Link Here
1393
def_fast_64bit='#define HAVE_FAST_64BIT 0'
1395
def_fast_64bit='#define HAVE_FAST_64BIT 0'
1394
def_fast_unaligned='#define HAVE_FAST_UNALIGNED 0'
1396
def_fast_unaligned='#define HAVE_FAST_UNALIGNED 0'
1395
arch_all='X86 IA64 SPARC ARM AVR32 SH4 PPC ALPHA MIPS PA_RISC S390 S390X VAX BFIN XTENSA TOMI GENERIC'
1397
arch_all='X86 IA64 SPARC ARM AVR32 SH4 PPC ALPHA MIPS PA_RISC S390 S390X VAX BFIN XTENSA TOMI GENERIC'
1396
subarch_all='X86_32 X86_64 PPC64'
1398
subarch_all='X86_32 X86_64 X86_64_X64 X86_64_X32 PPC64'
1397
case "$host_arch" in
1399
case "$host_arch" in
1398
  i[3-9]86|x86|x86pc|k5|k6|k6-2|k6-3|pentium*|athlon*|i586-i686)
1400
  i[3-9]86|x86|x86pc|k5|k6|k6-2|k6-3|pentium*|athlon*|i586-i686)
1399
  arch='x86'
1401
  arch='x86'
Lines 1644-1649 case "$host_arch" in Link Here
1644
  x86_64|amd64)
1646
  x86_64|amd64)
1645
    arch='x86'
1647
    arch='x86'
1646
    subarch='x86_64'
1648
    subarch='x86_64'
1649
    cat > $TMPC << EOF
1650
int main(void) {
1651
    int test[(int)sizeof(char *)-7];
1652
    return 0;
1653
}
1654
EOF
1655
    cc_check && subarch="$subarch x86_64_x64" || subarch="$subarch x86_64_x32" CFLAGS="$CFLAGS -DMPG123_NO_LARGENAME"
1656
1647
    def_fast_unaligned='#define HAVE_FAST_UNALIGNED 1'
1657
    def_fast_unaligned='#define HAVE_FAST_UNALIGNED 1'
1648
    def_fast_64bit='#define HAVE_FAST_64BIT 1'
1658
    def_fast_64bit='#define HAVE_FAST_64BIT 1'
1649
    iproc='x86_64'
1659
    iproc='x86_64'
(-)a/cpudetect.c (-2 / +2 lines)
Lines 233-241 do_cpuid(unsigned int ax, unsigned int *p) Link Here
233
{
233
{
234
// code from libavcodec:
234
// code from libavcodec:
235
    __asm__ volatile
235
    __asm__ volatile
236
        ("mov %%"REG_b", %%"REG_S"\n\t"
236
        ("mov %%"REG_rb", %%"REG_rS"\n\t"
237
         "cpuid\n\t"
237
         "cpuid\n\t"
238
         "xchg %%"REG_b", %%"REG_S
238
         "xchg %%"REG_rb", %%"REG_rS
239
         : "=a" (p[0]), "=S" (p[1]),
239
         : "=a" (p[0]), "=S" (p[1]),
240
           "=c" (p[2]), "=d" (p[3])
240
           "=c" (p[2]), "=d" (p[3])
241
         : "0" (ax));
241
         : "0" (ax));
(-)a/ffmpeg_files/x86_cpu.h (-2 / +27 lines)
Lines 24-36 Link Here
24
#include <stdint.h>
24
#include <stdint.h>
25
#include "config.h"
25
#include "config.h"
26
26
27
#if ARCH_X86_64
27
#if ARCH_X86_64_X64
28
#    define REG_PTR_MOD "q"
28
#    define REG_a "rax"
29
#    define REG_a "rax"
29
#    define REG_b "rbx"
30
#    define REG_b "rbx"
30
#    define REG_c "rcx"
31
#    define REG_c "rcx"
31
#    define REG_d "rdx"
32
#    define REG_d "rdx"
32
#    define REG_D "rdi"
33
#    define REG_D "rdi"
33
#    define REG_S "rsi"
34
#    define REG_S "rsi"
35
#    define REG_8 "r8"
34
#    define PTR_SIZE "8"
36
#    define PTR_SIZE "8"
35
typedef int64_t x86_reg;
37
typedef int64_t x86_reg;
36
38
Lines 42-50 typedef int64_t x86_reg; Link Here
42
#    define REGc    rcx
44
#    define REGc    rcx
43
#    define REGd    rdx
45
#    define REGd    rdx
44
#    define REGSP   rsp
46
#    define REGSP   rsp
47
#    define REG8    r8
45
48
46
#elif ARCH_X86_32
49
#elif ARCH_X86_64_X32 || ARCH_X86_32
47
50
51
#    define REG_PTR_MOD "k"
48
#    define REG_a "eax"
52
#    define REG_a "eax"
49
#    define REG_b "ebx"
53
#    define REG_b "ebx"
50
#    define REG_c "ecx"
54
#    define REG_c "ecx"
Lines 62-71 typedef int32_t x86_reg; Link Here
62
#    define REGc    ecx
66
#    define REGc    ecx
63
#    define REGd    edx
67
#    define REGd    edx
64
#    define REGSP   esp
68
#    define REGSP   esp
69
#    define REG8    r8d
65
#else
70
#else
66
typedef int x86_reg;
71
typedef int x86_reg;
67
#endif
72
#endif
68
73
74
#if ARCH_X86_64
75
#    define REG_ra "rax"
76
#    define REG_rb "rbx"
77
#    define REG_rc "rcx"
78
#    define REG_rd "rdx"
79
#    define REG_rD "rdi"
80
#    define REG_rS "rsi"
81
#    define REG_rBP "rbp"
82
typedef int64_t x86_native_reg;
83
#elif ARCH_X86_32
84
#    define REG_ra "eax"
85
#    define REG_rb "ebx"
86
#    define REG_rc "ecx"
87
#    define REG_rd "edx"
88
#    define REG_rD "edi"
89
#    define REG_rS "esi"
90
#    define REG_rBP "ebp"
91
typedef int32_t x86_native_reg;
92
#endif
93
69
#define HAVE_7REGS (ARCH_X86_64 || (HAVE_EBX_AVAILABLE && HAVE_EBP_AVAILABLE))
94
#define HAVE_7REGS (ARCH_X86_64 || (HAVE_EBX_AVAILABLE && HAVE_EBP_AVAILABLE))
70
#define HAVE_6REGS (ARCH_X86_64 || (HAVE_EBX_AVAILABLE || HAVE_EBP_AVAILABLE))
95
#define HAVE_6REGS (ARCH_X86_64 || (HAVE_EBX_AVAILABLE || HAVE_EBP_AVAILABLE))
71
96
(-)a/libmpcodecs/vf_ilpack.c (-4 / +4 lines)
Lines 114-120 static void pack_li_0_MMX(unsigned char *dst, unsigned char *y, Link Here
114
    unsigned char *u, unsigned char *v, int w, int us, int vs)
114
    unsigned char *u, unsigned char *v, int w, int us, int vs)
115
{
115
{
116
    __asm__ volatile (""
116
    __asm__ volatile (""
117
        "push %%"REG_BP" \n\t"
117
        "push %%"REG_rBP" \n\t"
118
#if ARCH_X86_64
118
#if ARCH_X86_64
119
        "mov %6, %%"REG_BP" \n\t"
119
        "mov %6, %%"REG_BP" \n\t"
120
#else
120
#else
Lines 205-211 static void pack_li_0_MMX(unsigned char *dst, unsigned char *y, Link Here
205
        "decl %%ecx \n\t"
205
        "decl %%ecx \n\t"
206
        "jnz .Lli0 \n\t"
206
        "jnz .Lli0 \n\t"
207
        "emms \n\t"
207
        "emms \n\t"
208
        "pop %%"REG_BP" \n\t"
208
        "pop %%"REG_rBP" \n\t"
209
        :
209
        :
210
        : "S" (y), "D" (dst), "a" (u), "b" (v), "c" (w/16),
210
        : "S" (y), "D" (dst), "a" (u), "b" (v), "c" (w/16),
211
#if ARCH_X86_64
211
#if ARCH_X86_64
Lines 222-228 static void pack_li_1_MMX(unsigned char *dst, unsigned char *y, Link Here
222
    unsigned char *u, unsigned char *v, int w, int us, int vs)
222
    unsigned char *u, unsigned char *v, int w, int us, int vs)
223
{
223
{
224
    __asm__ volatile (""
224
    __asm__ volatile (""
225
        "push %%"REG_BP" \n\t"
225
        "push %%"REG_rBP" \n\t"
226
#if ARCH_X86_64
226
#if ARCH_X86_64
227
        "mov %6, %%"REG_BP" \n\t"
227
        "mov %6, %%"REG_BP" \n\t"
228
#else
228
#else
Lines 317-323 static void pack_li_1_MMX(unsigned char *dst, unsigned char *y, Link Here
317
        "decl %%ecx \n\t"
317
        "decl %%ecx \n\t"
318
        "jnz .Lli1 \n\t"
318
        "jnz .Lli1 \n\t"
319
        "emms \n\t"
319
        "emms \n\t"
320
        "pop %%"REG_BP" \n\t"
320
        "pop %%"REG_rBP" \n\t"
321
        :
321
        :
322
        : "S" (y), "D" (dst), "a" (u), "b" (v), "c" (w/16),
322
        : "S" (y), "D" (dst), "a" (u), "b" (v), "c" (w/16),
323
#if ARCH_X86_64
323
#if ARCH_X86_64

Return to bug 452484