[Bug 212798] multimedia/transcode: Fix build with clang 3.9.0
bugzilla-noreply at freebsd.org
bugzilla-noreply at freebsd.org
Sun Sep 18 17:07:05 UTC 2016
https://bugs.freebsd.org/bugzilla/show_bug.cgi?id=212798
Bug ID: 212798
Summary: multimedia/transcode: Fix build with clang 3.9.0
Product: Ports & Packages
Version: Latest
Hardware: Any
OS: Any
Status: New
Severity: Affects Some People
Priority: ---
Component: Individual Port(s)
Assignee: freebsd-ports-bugs at FreeBSD.org
Reporter: dim at FreeBSD.org
CC: cyberbotx at cyberbotx.com
CC: cyberbotx at cyberbotx.com
Flags: maintainer-feedback?(cyberbotx at cyberbotx.com)
Created attachment 174922
--> https://bugs.freebsd.org/bugzilla/attachment.cgi?id=174922&action=edit
Add newlines to inline asm
In bug 212343, for the exp-run with clang 3.9.0, we encountered this error in
multimedia/transcode [1]:
motion.c:353:4: error: no matching '.endr' in definition
" pxor %%mm0 , %%mm0; /* clear mm0
*/"
^
<inline asm>:1:466: note: instantiated into assembly here
pxor %mm0 , %mm0; /* clear mm0
*/ pcmpeqw %mm6 , %mm6; /* Build 7f7f7f7f7f7f7f
in a register */ psrlw $9 , %mm6; /*
*/ packuswb %mm6 , %mm6;
/* */
; /* */ .rept 8
; /*
*/ movq (%esi), %mm1; /* 8 Pixels from filtered frame to mm1
*/ movq (%edi), %mm2; /* 8 Pixels from filtered
frame to mm2 (displaced) */ movq (%eax), %mm3; /* reference
to mm3 */ psrlq $1 , %mm1;
/* average source pixels */ psrlq $1 ,
%mm2; /* shift right by one (divide by two) */ pand
%mm6 , %mm1; /* kill downshifted bits
*/ pand %mm6 , %mm2; /* kill downshifted bits
*/ paddusw %mm2 , %mm1; /* add up ...
*/ movq %mm3 , %mm4; /* copy
reference to mm4 */ psubusb %mm1 , %mm3;
/* positive differences between mm2 and mm1 */ psubusb %mm4 , %mm1;
/* positive differences between mm1 and mm3 */ paddusb %mm3 , %mm1;
/* mm1 now contains abs(mm1-mm2) */ paddusw %mm1 , %mm0;
/* add result to mm0 */ addl %ecx ,
%esi; /* add framewidth to frameaddress */ addl
%ecx , %edi; /* add framewidth to frameaddress
*/ addl %ecx , %ecx; /* add framewidth to frameaddress
*/ .endr ; /*
*/ /*
*/ movq %mm0 ,
calc_SAD_half_mmx.a at GOTOFF(%edx) ; /* make mm0 available to gcc ...
*/
^
1 error generated.
For some reason, that particular inline assembly block does not have embedded
newlines, and this trips up the .rept .endr processing. Fix it by adding
newlines.
[1]
http://package18.nyi.freebsd.org/data/headi386PR212343-default/2016-09-11_07h04m19s/logs/errors/transcode-1.1.7_26.log
--
You are receiving this mail because:
You are the assignee for the bug.
More information about the freebsd-ports-bugs
mailing list