Go to:
Gentoo Home
Documentation
Forums
Lists
Bugs
Planet
Store
Wiki
Get Gentoo!
Gentoo's Bugzilla – Attachment 337156 Details for
Bug 452484
=media-video/mplayer2-2.0_p20120828 ABI=x32 - cpudetect.c:206: Error: invalid instruction suffix for `pushf'
Home
|
New
–
[Ex]
|
Browse
|
Search
|
Privacy Policy
|
[?]
|
Reports
|
Requests
|
Help
|
New Account
|
Log In
[x]
|
Forgot Password
Login:
[x]
[patch]
>=media-video/mplayer2-2.0_p20121108 add x32 abi support
mplayer2-x32.patch (text/plain), 4.50 KB, created by
camper
on 2013-01-28 22:02:00 UTC
(
hide
)
Description:
>=media-video/mplayer2-2.0_p20121108 add x32 abi support
Filename:
MIME Type:
Creator:
camper
Created:
2013-01-28 22:02:00 UTC
Size:
4.50 KB
patch
obsolete
>--- a/configure >+++ b/configure >@@ -1274,7 +1274,9 @@ echo "yes" > if test -z "$_target" && x86 ; then > cat > $TMPC << EOF > int main(void) { >+#ifndef __x86_64__ > int test[(int)sizeof(char *)-7]; >+#endif > return 0; > } > EOF >@@ -1393,7 +1395,7 @@ fi > def_fast_64bit='#define HAVE_FAST_64BIT 0' > def_fast_unaligned='#define HAVE_FAST_UNALIGNED 0' > arch_all='X86 IA64 SPARC ARM AVR32 SH4 PPC ALPHA MIPS PA_RISC S390 S390X VAX BFIN XTENSA TOMI GENERIC' >-subarch_all='X86_32 X86_64 PPC64' >+subarch_all='X86_32 X86_64 X86_64_X64 X86_64_X32 PPC64' > case "$host_arch" in > i[3-9]86|x86|x86pc|k5|k6|k6-2|k6-3|pentium*|athlon*|i586-i686) > arch='x86' >@@ -1644,6 +1646,14 @@ case "$host_arch" in > x86_64|amd64) > arch='x86' > subarch='x86_64' >+ cat > $TMPC << EOF >+int main(void) { >+ int test[(int)sizeof(char *)-7]; >+ return 0; >+} >+EOF >+ cc_check && subarch="$subarch x86_64_x64" || subarch="$subarch x86_64_x32" CFLAGS="$CFLAGS -DMPG123_NO_LARGENAME" >+ > def_fast_unaligned='#define HAVE_FAST_UNALIGNED 1' > def_fast_64bit='#define HAVE_FAST_64BIT 1' > iproc='x86_64' >diff --git a/cpudetect.c b/cpudetect.c >index fb93116..edf4f0a 100644 >--- a/cpudetect.c >+++ b/cpudetect.c >@@ -233,9 +233,9 @@ do_cpuid(unsigned int ax, unsigned int *p) > { > // code from libavcodec: > __asm__ volatile >- ("mov %%"REG_b", %%"REG_S"\n\t" >+ ("mov %%"REG_rb", %%"REG_rS"\n\t" > "cpuid\n\t" >- "xchg %%"REG_b", %%"REG_S >+ "xchg %%"REG_rb", %%"REG_rS > : "=a" (p[0]), "=S" (p[1]), > "=c" (p[2]), "=d" (p[3]) > : "0" (ax)); >diff --git a/ffmpeg_files/x86_cpu.h b/ffmpeg_files/x86_cpu.h >index 49a5b28..46ca592 100644 >--- a/ffmpeg_files/x86_cpu.h >+++ b/ffmpeg_files/x86_cpu.h >@@ -24,13 +24,15 @@ > #include <stdint.h> > #include "config.h" > >-#if ARCH_X86_64 >+#if ARCH_X86_64_X64 >+# define REG_PTR_MOD "q" > # define REG_a "rax" > # define REG_b "rbx" > # define REG_c "rcx" > # define REG_d "rdx" > # define REG_D "rdi" > # define REG_S "rsi" >+# define REG_8 "r8" > # define PTR_SIZE "8" > typedef int64_t x86_reg; > >@@ -42,9 +44,11 @@ typedef int64_t x86_reg; > # define REGc rcx > # define REGd rdx > # define REGSP rsp >+# define REG8 r8 > >-#elif ARCH_X86_32 >+#elif ARCH_X86_64_X32 || ARCH_X86_32 > >+# define REG_PTR_MOD "k" > # define REG_a "eax" > # define REG_b "ebx" > # define REG_c "ecx" >@@ -62,10 +66,31 @@ typedef int32_t x86_reg; > # define REGc ecx > # define REGd edx > # define REGSP esp >+# define REG8 r8d > #else > typedef int x86_reg; > #endif > >+#if ARCH_X86_64 >+# define REG_ra "rax" >+# define REG_rb "rbx" >+# define REG_rc "rcx" >+# define REG_rd "rdx" >+# define REG_rD "rdi" >+# define REG_rS "rsi" >+# define REG_rBP "rbp" >+typedef int64_t x86_native_reg; >+#elif ARCH_X86_32 >+# define REG_ra "eax" >+# define REG_rb "ebx" >+# define REG_rc "ecx" >+# define REG_rd "edx" >+# define REG_rD "edi" >+# define REG_rS "esi" >+# define REG_rBP "ebp" >+typedef int32_t x86_native_reg; >+#endif >+ > #define HAVE_7REGS (ARCH_X86_64 || (HAVE_EBX_AVAILABLE && HAVE_EBP_AVAILABLE)) > #define HAVE_6REGS (ARCH_X86_64 || (HAVE_EBX_AVAILABLE || HAVE_EBP_AVAILABLE)) > >diff --git a/libmpcodecs/vf_ilpack.c b/libmpcodecs/vf_ilpack.c >index db4a849..4bdc7c6 100644 >--- a/libmpcodecs/vf_ilpack.c >+++ b/libmpcodecs/vf_ilpack.c >@@ -114,7 +114,7 @@ static void pack_li_0_MMX(unsigned char *dst, unsigned char *y, > unsigned char *u, unsigned char *v, int w, int us, int vs) > { > __asm__ volatile ("" >- "push %%"REG_BP" \n\t" >+ "push %%"REG_rBP" \n\t" > #if ARCH_X86_64 > "mov %6, %%"REG_BP" \n\t" > #else >@@ -205,7 +205,7 @@ static void pack_li_0_MMX(unsigned char *dst, unsigned char *y, > "decl %%ecx \n\t" > "jnz .Lli0 \n\t" > "emms \n\t" >- "pop %%"REG_BP" \n\t" >+ "pop %%"REG_rBP" \n\t" > : > : "S" (y), "D" (dst), "a" (u), "b" (v), "c" (w/16), > #if ARCH_X86_64 >@@ -222,7 +222,7 @@ static void pack_li_1_MMX(unsigned char *dst, unsigned char *y, > unsigned char *u, unsigned char *v, int w, int us, int vs) > { > __asm__ volatile ("" >- "push %%"REG_BP" \n\t" >+ "push %%"REG_rBP" \n\t" > #if ARCH_X86_64 > "mov %6, %%"REG_BP" \n\t" > #else >@@ -317,7 +317,7 @@ static void pack_li_1_MMX(unsigned char *dst, unsigned char *y, > "decl %%ecx \n\t" > "jnz .Lli1 \n\t" > "emms \n\t" >- "pop %%"REG_BP" \n\t" >+ "pop %%"REG_rBP" \n\t" > : > : "S" (y), "D" (dst), "a" (u), "b" (v), "c" (w/16), > #if ARCH_X86_64
You cannot view the attachment while viewing its details because your browser does not support IFRAMEs.
View the attachment on a separate page
.
View Attachment As Diff
View Attachment As Raw
Actions:
View
|
Diff
Attachments on
bug 452484
:
335806
|
335808
|
335810
| 337156