GMP 6.2.1 core2 x86_64 assembler error "operands invalid for `movq'"
Simon Sobisch
simonsobisch at gnu.org
Tue Nov 1 09:49:01 CET 2022
Environment:
Version: GNU MP 6.2.1
Host type: core2-apple-darwin11.4.2
ABI: 64
linked files:
config.status: linking ../mpn/x86_64/core2/popcount.asm to mpn/popcount.asm
config.status: linking ../mpn/x86_64/core2/hamdist.asm to mpn/hamdist.asm
make -k builds everything without an error but those two above fail (I
think in gas), details see below.
When doing a research on this issue I recognized in
mpn/x86/pentium4/sse/popcount.asm
a comment "movq avoided due to gas bug" (which is in since GMP 4.3).
Maybe it is possible do do something similar for popcount.asm and
hamdist.asm in mpn/x86_64/core2 ?
Making all in mpn
/bin/sh ../libtool --mode=compile --tag=CC ../../mpn/m4-ccas --m4="m4"
gcc -std=gnu99 -c -DHAVE_CONFIG_H -I. -I../../mpn -I..
-D__GMP_WITHIN_GMP -I../.. -DOPERATION_`echo popcount | sed 's/_$//'`
-O2 -pedantic -fomit-frame-pointer -m64 -mtune=core2 -march=core2 `test
-f 'popcount.asm' || echo '../../mpn/'`popcount.asm
libtool: compile: ../../mpn/m4-ccas --m4=m4 gcc -std=gnu99 -c
-DHAVE_CONFIG_H -I. -I../../mpn -I.. -D__GMP_WITHIN_GMP -I../..
-DOPERATION_popcount -O2 -pedantic -fomit-frame-pointer -m64
-mtune=core2 -march=core2 popcount.asm -fno-common -DPIC -o
.libs/popcount.o
m4 -DHAVE_CONFIG_H -D__GMP_WITHIN_GMP -DOPERATION_popcount -DPIC
popcount.asm >tmp-popcount.s
gcc -std=gnu99 -c -DHAVE_CONFIG_H -I. -I../../mpn -I..
-D__GMP_WITHIN_GMP -I../.. -DOPERATION_popcount -O2 -pedantic
-fomit-frame-pointer -m64 -mtune=core2 -march=core2 tmp-popcount.s
-fno-common -DPIC -o .libs/popcount.o
tmp-popcount.s:181:suffix or operands invalid for `movq'
make[2]: *** [popcount.lo] Error 1
/bin/sh ../libtool --mode=compile --tag=CC ../../mpn/m4-ccas --m4="m4"
gcc -std=gnu99 -c -DHAVE_CONFIG_H -I. -I../../mpn -I..
-D__GMP_WITHIN_GMP -I../.. -DOPERATION_`echo hamdist | sed 's/_$//'`
-O2 -pedantic -fomit-frame-pointer -m64 -mtune=core2 -march=core2 `test
-f 'hamdist.asm' || echo '../../mpn/'`hamdist.asm
libtool: compile: ../../mpn/m4-ccas --m4=m4 gcc -std=gnu99 -c
-DHAVE_CONFIG_H -I. -I../../mpn -I.. -D__GMP_WITHIN_GMP -I../..
-DOPERATION_hamdist -O2 -pedantic -fomit-frame-pointer -m64 -mtune=core2
-march=core2 hamdist.asm -fno-common -DPIC -o .libs/hamdist.o
m4 -DHAVE_CONFIG_H -D__GMP_WITHIN_GMP -DOPERATION_hamdist -DPIC
hamdist.asm >tmp-hamdist.s
gcc -std=gnu99 -c -DHAVE_CONFIG_H -I. -I../../mpn -I..
-D__GMP_WITHIN_GMP -I../.. -DOPERATION_hamdist -O2 -pedantic
-fomit-frame-pointer -m64 -mtune=core2 -march=core2 tmp-hamdist.s
-fno-common -DPIC -o .libs/hamdist.o
tmp-hamdist.s:206:suffix or operands invalid for `movq'
make[2]: *** [hamdist.lo] Error 1
Thanks for any pointers,
Simon
More information about the gmp-bugs
mailing list