This is the mail archive of the gcc-help@gcc.gnu.org mailing list for the GCC project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

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


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]