devel/camstream camstream-0.26.3-x86_64-asm.patch, NONE, 1.1 camstream.spec, 1.4, 1.5
Thorsten Leemhuis (thl)
fedora-extras-commits at redhat.com
Thu Feb 10 17:39:52 UTC 2005
Author: thl
Update of /cvs/extras/devel/camstream
In directory cvs-int.fedora.redhat.com:/tmp/cvs-serv11960
Modified Files:
camstream.spec
Added Files:
camstream-0.26.3-x86_64-asm.patch
Log Message:
add x86_64 asm-patch to fix build on that arch
camstream-0.26.3-x86_64-asm.patch:
--- NEW FILE camstream-0.26.3-x86_64-asm.patch ---
Credits for this patch go to gentoo.
--- ./camstream/video/video_asm.S.old 2004-04-17 18:22:08.977932552 +0100
+++ ./camstream/video/video_asm.S 2004-04-17 18:23:37.614457752 +0100
@@ -17,52 +17,52 @@
ENTRY(calc_diff128)
enter $0, $0
- push %ebx
- push %esi
- push %edi
-
- mov Number, %ecx # number of pixels
- mov Dst, %edi # destination
- mov Src1, %esi # src_new
- mov Src2, %ebx # src_old
+ push %rbx
+ push %rsi
+ push %rdi
+
+ mov Number, %rcx # number of pixels
+ mov Dst, %rdi # destination
+ mov Src1, %rsi # src_new
+ mov Src2, %rbx # src_old
0: lodsb # load byte
- mov (%ebx), %ah # load second byte
+ mov (%rbx), %ah # load second byte
shr $1, %al # /2 by shift-right both values
shr $1, %ah
sub %ah, %al # substract old value
add $128, %al # add virtual 0-point
stosb
- inc %ebx
+ inc %rbx
loop 0b
-9: pop %edi
- pop %esi
- pop %ebx
+9: pop %rdi
+ pop %rsi
+ pop %rbx
leave
ret
ENTRY(calc_diff128_mmx)
enter $0, $0
- push %ebx
- push %esi
- push %edi
-
- mov Number, %ecx # number of pixels
- mov Dst, %edi # destination
- mov Src1, %esi # src_new
- mov Src2, %ebx # src_old
+ push %rbx
+ push %rsi
+ push %rdi
+
+ mov Number, %rcx # number of pixels
+ mov Dst, %rdi # destination
+ mov Src1, %rsi # src_new
+ mov Src2, %rbx # src_old
- shr $2, %ecx # MMX uses 4 bytes in a row; too bad MMX
+ shr $2, %rcx # MMX uses 4 bytes in a row; too bad MMX
# doesnt have carry-bits or shift-right byte,
# or we could have grabbed 8 bytes in a row
movq mm_128w, %mm7
-0: movd (%esi), %mm0 # 00 00 00 00 b3 b2 b1 b0
+0: movd (%rsi), %mm0 # 00 00 00 00 b3 b2 b1 b0
punpcklbw mm_0, %mm0 # 00 b3 00 b2 00 b1 00 b0
- movd (%ebx), %mm1 # 00 00 00 00 c3 c2 c1 c0
+ movd (%rbx), %mm1 # 00 00 00 00 c3 c2 c1 c0
punpcklbw mm_0, %mm1 # 00 c3 00 c2 00 c1 00 c0
psraw $1, %mm0 # shift, then substract; this eliminates a
@@ -71,17 +71,17 @@
psubw %mm1, %mm0 # subtract
paddw %mm7, %mm0 # add virtual 0-point
packuswb mm_0, %mm0 # pack, unsigned saturation 00 00 00 00 d3 d2 d1 d0
- movd %mm0, (%edi) # store
+ movd %mm0, (%rdi) # store
- add $4, %ebx
- add $4, %esi
- add $4, %edi
+ add $4, %rbx
+ add $4, %rsi
+ add $4, %rdi
loop 0b
9: emms # empty MMX state
- pop %edi
- pop %esi
- pop %ebx
+ pop %rdi
+ pop %rsi
+ pop %rbx
leave
ret
@@ -89,24 +89,24 @@
# calc_intg: perform Integrator step, that is, add a buffer to another
ENTRY(calc_intg128)
enter $0, $0
- push %ebx
- push %esi
- push %edi
-
- mov 8(%ebp), %ecx # number of pixels
- mov 12(%ebp), %edi # destination
- mov 16(%ebp), %esi # 2nd buffer
+ push %rbx
+ push %rsi
+ push %rdi
+
+ mov 8(%rbp), %rcx # number of pixels
+ mov 12(%rbp), %rdi # destination
+ mov 16(%rbp), %rsi # 2nd buffer
0: lodsb
sub $128, %al # s - 128
shl $1, %al # *2
- add %al, (%edi) # add to destination
- inc %edi
+ add %al, (%rdi) # add to destination
+ inc %rdi
loop 0b
-9: pop %edi
- pop %esi
- pop %ebx
+9: pop %rdi
+ pop %rsi
+ pop %rbx
leave
ret
@@ -116,36 +116,36 @@
# Perform Integrator step with MMX instructions
ENTRY(calc_intg128_smx)
enter $0, $0
- push %ebx
- push %esi
- push %edi
-
- mov 8(%ebp), %ecx # number of pixels
- mov 12(%ebp), %edi # destination
- mov 16(%ebp), %esi # 2nd buffer
- shr $2, %ecx # divide by 4 (again, we must use word operands)
+ push %rbx
+ push %rsi
+ push %rdi
+
+ mov 8(%rbp), %rcx # number of pixels
+ mov 12(%rbp), %rdi # destination
+ mov 16(%rbp), %rsi # 2nd buffer
+ shr $2, %rcx # divide by 4 (again, we must use word operands)
movq mm_128w, %mm7 # load constant
# The following instructions are hopefully mixed
# to optimize execution
-0: movd (%edi), %mm0 # 00 00 00 00 b3 b2 b1 b0
+0: movd (%rdi), %mm0 # 00 00 00 00 b3 b2 b1 b0
punpcklbw mm_0, %mm0 # 00 b3 00 b2 00 b1 00 b0
- movd (%esi), %mm1 # 00 00 00 00 c3 c2 c1 c0
+ movd (%rsi), %mm1 # 00 00 00 00 c3 c2 c1 c0
punpcklbw mm_0, %mm1 # 00 c3 00 c2 00 c1 00 c0
- add $4, %esi # keep CPU busy
+ add $4, %rsi # keep CPU busy
psubw %mm7, %mm1 # src - 128
psllw $1, %mm1 # * 2
paddw %mm1, %mm0 # dst += src
packuswb mm_0, %mm0 # pack, unsigned saturation 00 00 00 00 d3 d2 d1 d0
- movd %mm0, (%edi) # store back
- add $4, %edi
+ movd %mm0, (%rdi) # store back
+ add $4, %rdi
loop 0b
9: emms # clear MMX state
- pop %edi
- pop %esi
- pop %ebx
+ pop %rdi
+ pop %rsi
+ pop %rbx
leave
ret
--- ./camstream/video/video_asm_add.S.old 2004-04-17 18:22:17.121694512 +0100
+++ ./camstream/video/video_asm_add.S 2004-04-17 18:23:54.272925280 +0100
@@ -4,102 +4,102 @@
ENTRY(calc_add)
enter $0, $0
- push %ebx
- push %esi
- push %edi
-
- mov Number, %ecx
- mov Dst, %edi
- mov Src1, %esi
+ push %rbx
+ push %rsi
+ push %rdi
+
+ mov Number, %rcx
+ mov Dst, %rdi
+ mov Src1, %rsi
0: lodsb
- add %al, (%edi)
- inc %edi
+ add %al, (%rdi)
+ inc %rdi
loop 0b
-9: pop %edi
- pop %esi
- pop %ebx
+9: pop %rdi
+ pop %rsi
+ pop %rbx
leave
ret
ENTRY(calc_add_mmx)
enter $0, $0
- push %ebx
- push %esi
- push %edi
-
- mov Number, %ecx
- mov Dst, %edi
- mov Src1, %esi
+ push %rbx
+ push %rsi
+ push %rdi
+
+ mov Number, %rcx
+ mov Dst, %rdi
+ mov Src1, %rsi
- shr $3, %ecx # Divide by 8 (!)
+ shr $3, %rcx # Divide by 8 (!)
-0: movq (%esi), %mm0
- add $8, %esi
- movq (%edi), %mm1
+0: movq (%rsi), %mm0
+ add $8, %rsi
+ movq (%rdi), %mm1
paddb %mm1, %mm0 # add, with overflow
- movq %mm0, (%edi)
- add $8, %edi
+ movq %mm0, (%rdi)
+ add $8, %rdi
loop 0
-9: pop %edi
- pop %esi
- pop %ebx
+9: pop %rdi
+ pop %rsi
+ pop %rbx
leave
ret
ENTRY(calc_add_mmxs)
enter $0, $0
- push %ebx
- push %esi
- push %edi
-
- mov Number, %ecx
- mov Dst, %edi
- mov Src1, %esi
+ push %rbx
+ push %rsi
+ push %rdi
+
+ mov Number, %rcx
+ mov Dst, %rdi
+ mov Src1, %rsi
- shr $3, %ecx # Divide by 8 (!)
+ shr $3, %rcx # Divide by 8 (!)
-0: movq (%esi), %mm0
- add $8, %esi
- movq (%edi), %mm1
+0: movq (%rsi), %mm0
+ add $8, %rsi
+ movq (%rdi), %mm1
paddsb %mm1, %mm0 # add, with saturation
- movq %mm0, (%edi)
- add $8, %edi
+ movq %mm0, (%rdi)
+ add $8, %rdi
loop 0
-9: pop %edi
- pop %esi
- pop %ebx
+9: pop %rdi
+ pop %rsi
+ pop %rbx
leave
ret
ENTRY(calc_add128_mmx)
enter $0, $0
- push %ebx
- push %esi
- push %edi
-
- mov Number, %ecx
- mov Dst, %edi
- mov Src1, %esi
+ push %rbx
+ push %rsi
+ push %rdi
+
+ mov Number, %rcx
+ mov Dst, %rdi
+ mov Src1, %rsi
- shr $3, %ecx # Divide by 8 (!)
+ shr $3, %rcx # Divide by 8 (!)
movq mm_128b, %mm7 # load constant
-0: movq (%esi), %mm0
- add $8, %esi
+0: movq (%rsi), %mm0
+ add $8, %rsi
psubb %mm7, %mm0 # compensate null-point
- movq (%edi), %mm1
+ movq (%rdi), %mm1
paddb %mm1, %mm0 # add, with overflow
- movq %mm0, (%edi)
- add $8, %edi
+ movq %mm0, (%rdi)
+ add $8, %rdi
loop 0
-9: pop %edi
- pop %esi
- pop %ebx
+9: pop %rdi
+ pop %rsi
+ pop %rbx
leave
ret
--- ./camstream/video/video_def.h.old 2004-04-17 18:22:25.357442488 +0100
+++ ./camstream/video/video_def.h 2004-04-17 18:24:14.037920544 +0100
@@ -1,8 +1,8 @@
#define __ASSEMBLY__
#include <linux/linkage.h>
-#define Number 8(%ebp)
-#define Dst 12(%ebp)
-#define Src1 16(%ebp)
-#define Src2 20(%ebp)
+#define Number 8(%rbp)
+#define Dst 12(%rbp)
+#define Src1 16(%rbp)
+#define Src2 20(%rbp)
Index: camstream.spec
===================================================================
RCS file: /cvs/extras/devel/camstream/camstream.spec,v
retrieving revision 1.4
retrieving revision 1.5
diff -u -r1.4 -r1.5
--- camstream.spec 10 Dec 2004 22:03:01 -0000 1.4
+++ camstream.spec 10 Feb 2005 17:39:50 -0000 1.5
@@ -1,6 +1,6 @@
Name: camstream
Version: 0.26.3
-Release: 4
+Release: 5
Epoch: 0
Summary: CamStream - a set of programs to make use of your webcam
@@ -11,6 +11,7 @@
Source1: %{name}.desktop
Source2: %{name}.png
Patch0: %{name}-makefiles.patch
+Patch1: %{name}-%{version}-x86_64-asm.patch
BuildRoot: %{_tmppath}/%{name}-%{version}-%{release}-root-%(%{__id_u} -n)
BuildRequires: qt-devel, libjpeg-devel, libpng-devel, autoconf, XFree86-devel
@@ -26,7 +27,9 @@
%prep
%setup -q
%patch0 -p1
-
+%ifarch x86_64
+%patch1 -p1
+%endif
%build
@@ -86,6 +89,9 @@
%changelog
+* Sat Jan 29 2005 Thorsten Leemhuis <fedora at leemhuis.info> 0:0.26.3-5
+- Add x86_64 asm patch; Patch was created by gentoo, many thanks to them
+
* Mon Dec 29 2003 Andreas Pfaffeneder <fedora at zuhause-local.de> 0:0.26.3-0.fdr.4
- Upstream applied patch to ftpput.cc
More information about the fedora-extras-commits
mailing list