It's unclear what the precise syntax for SubX should be.
Some reasons dealing with 64-bit sucks:
Some reasons dealing with x86_64 sucks:
REX bytes. There doesn't seem to be a clean syntax that can both show all
the numbers that go into the binary and keep conceptually related bits
together. In particular, if you want to fill in
___/r32/R15, you either
have to lie and say
7 and then think about how to provide the REX.B bit,
or you have to assume all instructions will implicitly decide whether to
emit a REX byte.
In x86 lots of unrelated bits get packed together, but at least related bits stay close together. In x86_64 we lose even that property X-(
32-bit immediates. In particular, no way to push a 64-bit immediate.
In x86 I was able to come up with a nice composable syntax for passing string literals into function calls. I just implemented string literals and function calls, and the combination worked cleanly. Now that's back to the drawing board X-(