[MPlayer-users] Impossible operand error compiling for strongarm
Reimar Döffinger
Reimar.Doeffinger at stud.uni-karlsruhe.de
Tue Feb 3 10:39:04 CET 2009
On Mon, Feb 02, 2009 at 10:22:55PM -0600, Christopher L wrote:
> 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.
What gave you that idea?
> 2) gcc uses "AT&T" syntax which is "operation source destination"
"AT&T-syntax" only exists for x86, so it sure can't use that for ARM. It
uses whatever the gnu assembler uses, searching for "GNU assembler ARM"
should find enough tutorials.
> #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));
I can't see how your compiler can run out of registers with only 4
operands used. Either some compilation flags are bad or your compiler
version is simply broken IMO.
More information about the MPlayer-users
mailing list