summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorlioux <lioux@FreeBSD.org>2002-02-10 13:11:13 +0000
committerlioux <lioux@FreeBSD.org>2002-02-10 13:11:13 +0000
commitfeff86d6202df8c7a435151a00c710eea0ad38ff (patch)
tree85bec6d09f4ab9c57ea256eccbcdc03775bc253f
parentcffb5b405033fdac9de3e5854e52c85f9e35377f (diff)
downloadFreeBSD-ports-feff86d6202df8c7a435151a00c710eea0ad38ff.zip
FreeBSD-ports-feff86d6202df8c7a435151a00c710eea0ad38ff.tar.gz
Apply asm patch to work around bug exposed in Athlon + gcc (2.9x).
Also happens in other systems Submitted by: Matthew Reimer <mreimer@vpop.net> Obtained from: Quasar DV Codec Project
-rw-r--r--graphics/libdv/files/patch-libdv:mmx.h25
-rw-r--r--multimedia/libdv/files/patch-libdv:mmx.h25
2 files changed, 50 insertions, 0 deletions
diff --git a/graphics/libdv/files/patch-libdv:mmx.h b/graphics/libdv/files/patch-libdv:mmx.h
new file mode 100644
index 0000000..7033e57
--- /dev/null
+++ b/graphics/libdv/files/patch-libdv:mmx.h
@@ -0,0 +1,25 @@
+--- libdv/mmx.h.orig Thu Apr 26 16:08:25 2001
++++ libdv/mmx.h Sun Feb 10 11:03:54 2002
+@@ -72,6 +72,9 @@
+ __asm__ __volatile__ (
+ /* See if CPUID instruction is supported ... */
+ /* ... Get copies of EFLAGS into eax and ecx */
++ "pushl %%ebx\n\t"
++ "pushl %%ecx\n\t"
++ "pushl %%edx\n\t"
+ "pushf\n\t"
+ "popl %%eax\n\t"
+ "movl %%eax, %%ecx\n\t"
+@@ -207,9 +210,11 @@
+ "movl $0, %0\n\n\t"
+
+ "Return:\n\t"
++ "popl %%edx\n\t"
++ "popl %%ecx\n\t"
++ "popl %%ebx\n\t"
+ : "=a" (rval)
+ : /* no input */
+- : "ebx", "ecx", "edx"
+ );
+
+ /* Return */
diff --git a/multimedia/libdv/files/patch-libdv:mmx.h b/multimedia/libdv/files/patch-libdv:mmx.h
new file mode 100644
index 0000000..7033e57
--- /dev/null
+++ b/multimedia/libdv/files/patch-libdv:mmx.h
@@ -0,0 +1,25 @@
+--- libdv/mmx.h.orig Thu Apr 26 16:08:25 2001
++++ libdv/mmx.h Sun Feb 10 11:03:54 2002
+@@ -72,6 +72,9 @@
+ __asm__ __volatile__ (
+ /* See if CPUID instruction is supported ... */
+ /* ... Get copies of EFLAGS into eax and ecx */
++ "pushl %%ebx\n\t"
++ "pushl %%ecx\n\t"
++ "pushl %%edx\n\t"
+ "pushf\n\t"
+ "popl %%eax\n\t"
+ "movl %%eax, %%ecx\n\t"
+@@ -207,9 +210,11 @@
+ "movl $0, %0\n\n\t"
+
+ "Return:\n\t"
++ "popl %%edx\n\t"
++ "popl %%ecx\n\t"
++ "popl %%ebx\n\t"
+ : "=a" (rval)
+ : /* no input */
+- : "ebx", "ecx", "edx"
+ );
+
+ /* Return */
OpenPOWER on IntegriCloud