I'm trying to build beecrypt 4.1.2 on Solaris 10 x86_64
with the (now no-cost) Sun Studio 11 development
environment. In particular
is part of CFLAGS, CXXFLAGS, LDFLAGS, etc. The compile
proceeds ok until mpopt.s, which is the x86_64 assembly.
I get three errors from the assembler:
cc -DHAVE_CONFIG_H -I. -I. -I. -I./..
-DOPTIMIZE_X86_64 -Xa -fast -xtarget=native
-xarch=amd64 -mt -c mpopt.s -KPIC -DPIC -o .libs/mpopt.o
"mpopt.s", line 51 : Syntax error
"mpopt.s", line 65 : Syntax error
"mpopt.s", line 210 : Syntax error
cc: assembler failed for mpopt.s
The problem on line 210 goes away if I change "inc" to
"incq". Not sure if that's the right fix, but I'm
guessing it is.
The other two complaints are both about this construct:
I've been all over the web looking for that construct,
and finally downloaded the "Volume 3" (x86-64vol3.pdf)
reference that comes up when searching Google for
AMD repz stos
Looking at pages # 10-12 (document pages 38-40), it's
pretty clear that the Solaris assembler is correct.
repz cannot be used with a store, only with a compare
I'm no assembly guru by any means, so I'm not sure what
the right fix is.