From: Hans-Bernhard Broeker Newsgroups: comp.os.msdos.djgpp Subject: Re: AMD processors and assembly language Date: 14 Mar 2000 12:58:58 GMT Organization: Aachen University of Technology (RWTH) Lines: 26 Message-ID: <8ald2i$ees$1@nets3.rz.RWTH-Aachen.DE> References: <01JMVKC89LSI9ASAX4 AT SLU DOT EDU> NNTP-Posting-Host: acp3bf.physik.rwth-aachen.de X-Trace: nets3.rz.RWTH-Aachen.DE 953038738 14812 137.226.32.75 (14 Mar 2000 12:58:58 GMT) X-Complaints-To: abuse AT rwth-aachen DOT de NNTP-Posting-Date: 14 Mar 2000 12:58:58 GMT User-Agent: tin/1.4-19991113 ("No Labels") (UNIX) (Linux/2.0.0 (i586)) Originator: broeker@ To: djgpp AT delorie DOT com DJ-Gateway: from newsgroup comp.os.msdos.djgpp Reply-To: djgpp AT delorie DOT com GAMMELJL AT slu DOT edu wrote: [...] > Specifically, in addition to the changes which I listed in previous > communications, I had to change lines of assembly language like > : "eax" > occurring at the end of a section of assembly language and intended to > inform the assembler that the register eax is used in that section of > assembly language to > pushl %%eax > . > . > popl %%eax This almost certainly is not the optimal way to solve that problem you faced. I don't seem to have the full context on this thread, but it sure seems like you fell into the 'fixed or forbidden register was spilled' problem of old inline assembly sources presented to new gcc versions, which has become a GCC FAQ. Pushing and popping is one possible workaround, sure, but there are far better solutions, if you want fast code. See the GCC homepage for more details, or, if you have a copy of the gcc-2.95.2 source tree at hand, look into its FAQ file. -- Hans-Bernhard Broeker (broeker AT physik DOT rwth-aachen DOT de) Even if all the snow were burnt, ashes would remain.