On Tue, Feb 16, 2016 at 11:00:38PM +0800, Yu Xiaolei wrote: > On Tue, Feb 16, 2016 at 9:01 PM, Michael Niedermayer <mich...@niedermayer.cc > > wrote: > > > On Tue, Feb 16, 2016 at 02:40:10PM +0800, Xiaolei Yu wrote: > > > Current intmath routines for arm require inter-procedure constant > > propagation > > > and fail to compile when optimizations are disabled. > > > --- > > > configure | 1 + > > > libavutil/intmath.h | 2 ++ > > > 2 files changed, 3 insertions(+) > > > > on arm without opts and this patch i get > > src/libavcodec/arm/aac.h: In function ‘VMUL4S’: > > src/libavcodec/arm/aac.h:102:5: error: can't find a register in class > > ‘LO_REGS’ while reloading ‘asm’ > > src/libavcodec/arm/aac.h:102:5: error: ‘asm’ operand has impossible > > constraints > > make: *** [libavcodec/aacdec.o] Error 1 > > > > > This error seems unrelated to the patch, but I am not sure as I am only > building some selected codecs. > Can you build again without the patch? > > Without the patch I get: > In file included from src/libavutil/intmath.h:30:0, > from src/libavutil/common.h:106, > from src/libavutil/avutil.h:288, > from src/libavutil/samplefmt.h:24, > from src/libavcodec/avcodec.h:31, > from src/libavcodec/internal.h:33, > from src/libavcodec/h264_direct.c:28: > src/libavutil/arm/intmath.h: In function 'get_scale_factor': > src/libavutil/arm/intmath.h:69:5: warning: asm operand 2 probably doesn't > match constraints > __asm__ ("ssat %0, %2, %1" : "=r"(x) : "r"(a), "i"(p+1)); > ^ > src/libavutil/arm/intmath.h:69:5: error: impossible constraint in 'asm'
yes, its worse without teh patch > > on x86 build passes with and without the patch here > > with what compiler is this needed ? > > > > > Yes, x86 builds fine without this patch. But the underlying problem is not > arch specific and may be encountered in other inline asm. I think current > patch is more consistent if we consider these routines as manual > optimizations. i dont uderstand the problem is specific to 2 arm asm functions you disable all intmath arm functions you disable all intmath x86 functions (none use the immedeate operand so cannot be affected) you leave all other x86 and arm functions enabled I think the 2 affected functions should be put under #if there should be no need to disable anything else its just the functions that use the immedeate operand which fail id assume [...] -- Michael GnuPG fingerprint: 9FF2128B147EF6730BADF133611EC787040B0FAB I know you won't believe me, but the highest form of Human Excellence is to question oneself and others. -- Socrates
signature.asc
Description: Digital signature
_______________________________________________ ffmpeg-devel mailing list ffmpeg-devel@ffmpeg.org http://ffmpeg.org/mailman/listinfo/ffmpeg-devel