On Mon, Dec 10, 2007 at 03:28:52PM +0000, Maciej W. Rozycki wrote:
> > > Not really a kernel-related question. I've discovered that GCC 4.1.1
> > > (which I'm not using for kernel compiling, but user space) generates
> > > branch likely instructions by default, even though the documentation
> > > says that their use is off by default for MIPS32 and MIPS64, because
> > > they are considered deprecated. They are documented as obsolete for the
> > > Broadcom chips I am working with.
> > Microarchitecture guys love to hate branch likely. But the deprecation is
> > a dream. Binary compatibility will always require those instructions to
> > continue to exist so the genie is out of the bottle and so I feel very
> > certain to predict that a future MIPS 3 specification will contain branch
> > likely.
> We have been there before -- binary compatibility does not preclude
> emulation. And I do not mean keeping the MIPS I toys (as they might be
> seen these days) running, but serious products deployed commercially, like
> newer VAX implementations that kept full binary compatibility with their
> predecessors in the area of the some of the more arcane instructions only
> by means of emulating them in the OS.
It would devastate the performance of some binaries.
As an intellectual challenge, how far can you strip down a MIPS
implementation and emulate removed instructions in the kernel ;-)