after 2 months of fixes and code reviews from Tom, Matt, Chandler, David
and great feedback from others, committed it at r227008
Tried to pick quiet time on a weekend to land it.
Will watch for any fallout.
my todo list:
- test/fix what it emits on arm32/64 and s390
- improve error reporting
- add more tests
- support 32-bit subregisters
- fix few corner cases when emitted code is rejected by kernel
- add new front-ends (they likely will stay out of tree)