Расширяем регистры BC, DE, HL, IX, IY до 32 бит.
По возможности делаем набор ортогональным, чтобы можно было что-то типа "ld IX,(HL+34)", или "add BC,(DE)".
Битов для кодирования таких инструкций надо много, поэтому некоторые регистры и операции с ними делаем быстрыми, однобайтными. В остальном - не сдерживаем полёт фантазии.

Далее, например, в стандартном наборе "add, adc, sub, sbc, and, xor, or..." инструкция сравнения мне кажется лишней, а вместо неё просится что-то типа andn.
and - маска, оставить в первом операнде только те биты, которые во втором операнде равны 1.
xor - инвертировать биты.
or - установка битов.
andn - "and not", сбросить в первом операнде биты, которые во втором операнде равны 1.

Сложение и вычитание с переносом тоже кажутся не очень нужными при 32-битной арифметике. Может их вынести из основного набора, а вместо них поставить что-то другое?

Возможно, я не умею пользоваться флагом переполнения, но смешанное арифметическое сравнение signed и unsigned ломает мозг. Давайте сделаем четыре инструкции cpuu, cpus, cpsu, cpss.

Можно оставить sll в режиме Z80 как есть для совместимости, но в новом наборе исправить ошибку.

Префикс повтора, как в x86, не предлагать, он вообще никак не вписывается. Можно сделать 32-битный djnz.

Ну, огромное желание добавить mul и div даже не обсуждается.

Что ещё добавить, изменить?