This is the mail archive of the
gcc-help@gcc.gnu.org
mailing list for the GCC project.
Re: 32-bit libraries in 64-bit build.
Thank you Ian and Michael for taking the time to respond to this topic.
And thank you Brian for bringing it up. I learned a lot from this
discussion.
For the record, I would never advise trying to mix 64-bit and 32-bit
code (even before learning the actual details here). In my experience,
even if you could get it to work, including passing thorough QA testing,
a user will figure out a way to break it. And this will occur at the
most inconvenient time, both for the user and for you. Somewhere in that
32-bit code there is an aad, aas, etc. instruction that is executed by
the special magic only a user can bring to your code. :-) Ultimately,
of course, the user is right.
Bob
On Thu, 2009-05-21 at 23:38 -0700, Ian Lance Taylor wrote:
> Bob Plantz <plantz@cds1.net> writes:
>
> > I'm not aware of any 32-bit instructions that behave differently in
> > 64-bit mode. Except, of course, instructions that manipulate the stack
> > (push, pop, call, ret, etc.) do so in 32-bit or 64-bit increments,
> > respectively. This is the machine code 0x55 is pushl %ebp in 32-bit mode
> > and it is pushq %rbp in 64-bit mode.
> >
> > Do you have other examples?
>
> There are several 32-bit instructions which are invalid in 64-bit mode,
> such as aad, aas, etc.
>
> Ian