mips16 whitepaper

I found this the other day while surfing the web. For those wanting to understand about Mips 16, it's a very easy and quick read. If you already understand Mips, it will make the llvm Mips16 port much easier to understand. It has just the overview information one needs. Of course full Mips 16 documentation is available at Mips.com.

MIPS16_whitepaper.pdf (53 KB)

Please add this to <http://llvm.org/docs/CompilerWriterInfo.html>

-- Sean Silva

I will. I owe a very long mips16 write up , especially for floating point when I'm done.
It's very complicated the way they implemented hard float in gcc and it is not documented.
It took me some thinking and study to unravel it all. They do different things for pic/non pic
and the interoperability with mips32 is what makes in complicated.

I have come up with another totally different way to implement floating point in mips16 which I hope
to have time to do in the future. It's probably about 2 months work but management wants me
to do this gcc way first.

My alternate design is a more true floating point implementation as opposed to the gcc method which is more or less a variant of soft-float which uses different runtime routines but it has a lot of complications with mips32 interoperability whereas my scheme has none of these issues and does not need any special helper functions.

If you want to write a longer document about this you may find
<http://www.llvm.org/docs/SphinxQuickstartTemplate.html> helpful.

-- Sean Silva

Hi Reed,

If you want to write something "lasting" that is kept up to date, please work with Sean (who, btw, is completely amazing) to add something to docs/. OTOH, If you want to capture something about the state of mips16 and the implementation thereof, it would probably make sense to add something to blog.llvm.org. Let me know and I can send you an invitation.