Should add some minor type safety to the use of this information, since
there's quite a bit of metadata being laundered through an unsigned.
I'm looking to potentially add more bitfields to that unsigned, but I
find InlineAsm's big ol' bag of enum values and usage of unsigned
confusing, type-unsafe, and un-ergonomic. These can probably be better
abstracted.
I think the lack of static_cast outside of InlineAsm indicates the prior
code smell fixed here.