That adds quite a bit of complication to the compiler though -- getting
the instruction lengths right (and thus proper packing & alignment) can
be extremely difficult. I did some experiments with this on a target
with *fixed* instruction lengths a while back and even though the port
tried hard to get lengths right, it would routinely miss something.
Ultimately I decided that it forcing the compiler to know instruction
lengths with a very high degree of accuracy wasn't a sane thing to do.
Dealing with variable instruction lengths just adds yet another
complexity to the situation. Then add the complication of needing to
add specific prefixes or nops and it just gets downright ugly.