On Sun, 18 Aug 2013, Richard Haney wrote:
Sorry about the last, attempted message being too large. I did not know
that there was such a size limit. I am re-sending the last attempted
message with the attachments removed. The relevant attachments were
included with the original message with subject "Assembler instruction
errors for push and pop during make". I would appreciate any help anyone
can provide.
At present I am trying to brush up on assembly & machine coding concepts
and to study the differences between 32-bit and 64-bit processing.
Hopefully, that will allow me to create a fix for the problem. One hope
is that, for the assembly programs in question, it does not matter whether
they are assembled as 32-bit code "as is" with only an explicit invocation
of the gnu assembler and a --32 flag adjustment or as 64-bit code with code
adjustments. But at present that is just wishful thinking.
I'm not familiar in detail with that flag, but I doubt that it would work.
There are instructions (and encodings of instructions) that are valid in
32-bit code and not in 64-bit code, plus, if the code is pushing things
onto the stack, you need to use 64-bit pushes (and 64-bit registers when
storing pointers) to interoperate with other 64-bit code.
Are you sure that the code is building with the right assembly file?
AMD64.asm looks to be using pushq, which is the right form to use for
64-bit code. I suspect that this is a configure issue (detecting your
architecture as IA-32 and not x86-64), not a problem in the assembly files
themselves.
-- Jeremiah Willcock