It's not evil. In fact, it serves the very important purpose of generating much smaller, denser code, at the cost of performance (particularly floating point). For things that aren't performance critical, it's a really good thing.
Yeah, I dunno. This thing has like 4 GB of disk space on the low end and there's no cost to executable size until you hit 10 MB, a ceiling you're unlikely to reach by machine code alone. RAM is in similar abundance. In offhand testing the gain I see from switching on thumb is quite small relative to numbers like "10 MB", and really is on the scale that could easily be overwhelmed with a couple of PNGs or even by just making enough nibs.
The reason code space optimizations are generally preferred these days are that space optimizations are really performance optimizations-- space optimization means smaller code blocks, smaller jumps and better performance on the cache. But that justification doesn't really work if your space optimization is going to overwhelm this effect with an active performance hit.
I guess maybe is the idea that you get a net performance gain using thumb on for apps with little or no floating point code? I don't know. I'm sure there's someone somewhere thumb is right for but I'm really having trouble justifying Apple making that setting the default.
You know what I very badly want to know but still have no idea, is how the hell do you use the VFP / vector unit.
http://code.google.com/p/vfpmathlibrary/or be prepared to learn some inline assembly. ;-)
[/quote]
Hm, so I've got the google code vfp library but the vfpmath library itself is a bit cryptic and doesn't seem to come with any documentation. Is there a guide to using vfpmathlibrary you would recommend? Alternately, is there any reading you'd recommend for someone interested in going ahead and interacting with the vfp via assembly? I've just in general had trouble finding documentation on this stuff. Thanks...