On Thu, 18 Sep 2003, Atsushi Nemoto wrote: > macro> Log message: > macro> Fix indeterminism in the multiply/shift erratum detection leading > macro> to false negatives. Plus a few minor comment updates for clarity. > > gcc 3.3.1 can not compile current (2.4) arch/mips64/kernel/cpu-probe.c. > > cpu-probe.c:118: warning: asm operand 0 probably doesn't match constraints > cpu-probe.c:118: warning: asm operand 1 probably doesn't match constraints > ... > cpu-probe.c: In function `check_mult_sh': > cpu-probe.c:118: error: impossible constraint in `asm' Hmm, perhaps 3.3.1 fails to inline the functions... It works just fine with 2.95.4. > The code is: > > static inline void align_mod(int align, int mod) > { > asm volatile( > ".set push\n\t" > ".set noreorder\n\t" > ".balign %0\n\t" > ".rept %1\n\t" > "nop\n\t" > ".endr\n\t" > ".set pop" > : > : "i" (align), "i" (mod)); > } > > The align_mod() and mult_sh_align_mod() should be written as macro? I wanted to avoid that as the resulting code would be ugly. I guess there is no other choice, although I think that's a bug in gcc. Can you quote the exact command line used for building the file? -- + Maciej W. Rozycki, Technical University of Gdansk, Poland + +--------------------------------------------------------------+ + e-mail: macro@ds2.pg.gda.pl, PGP key available +