I'm trying to fix this problem I'm seeing trying to compile on a strongarm machine. Here's what I see: cc -DHAVE_AV_CONFIG_H -D_FILE_OFFSET_BITS=64 -D_LARGEFILE_SOURCE -I.. -I.. -Wall -Wno-switch -Wpointer-arith -Wredundant-decls -O4 -pipe -ffast-math -fomit-frame-pointer -D_REENTRANT -D_LARGEFILE_SOURCE -D_FILE_OFFSET_BITS=64 -I. -I/usr/local/include/SDL -D_REENTRANT -I/usr/local/include/freetype2 -I/usr/local/include -c -o dsputil.o dsputil.c dsputil.c: In function `sub_hfyu_median_prediction_c': arm/mathops.h:107: impossible register constraint in `asm' arm/mathops.h:107: `asm' needs too many reloads make[1]: *** [dsputil.o] Error 1 So I go over to the offending line in arm/mathops.h. After reading a few tutorials on assembly, I have found the following. 1) The "+" modifier isn't allowed by gcc in inline assembly. 2) gcc uses "AT&T" syntax which is "operation source destination" It seems to me that all the parameters are reversed (e.g. on the first line mov %0 %2 should be mov %2 %0, etc), because otherwise this doesn't make any sense. Could someone give me a sanity check here? Is this function hosed, or do I need to go back and read more about assembly? Thanks! #define mid_pred mid_pred static inline av_const int mid_pred(int a, int b, int c) { int m; __asm__ volatile ( "mov %0, %2 \n\t" "cmp %1, %2 \n\t" "movgt %0, %1 \n\t" "movgt %1, %2 \n\t" "cmp %1, %3 \n\t" "movle %1, %3 \n\t" "cmp %0, %1 \n\t" "movgt %0, %1 \n\t" : "=&r"(m), "+r"(a) : "r"(b), "r"(c)); return m; } _______________________________________________ MPlayer-users mailing list MPlayer-users@xxxxxxxxxxxx https://lists.mplayerhq.hu/mailman/listinfo/mplayer-users