On platforms that support stz for clearing memory addresses, synthesize forms for larger operands automatically. So this way, when assigning a 32-bit value to 0, we can synthesize it from either 8-bit or 16-bit STZ instructions, without needing to split it into multiple operations by hand. Note that for 65816, if the size of the operand isn't evenly divisible by the memory size used by the clear instruction (eg. clearing a u24 when in mem16 mode), it is an error, because it is no longer possible to synthesize a larger clear instruction transparently.
On platforms that support
stz
for clearing memory addresses, synthesize forms for larger operands automatically. So this way, when assigning a 32-bit value to 0, we can synthesize it from either 8-bit or 16-bit STZ instructions, without needing to split it into multiple operations by hand. Note that for 65816, if the size of the operand isn't evenly divisible by the memory size used by the clear instruction (eg. clearing au24
when inmem16
mode), it is an error, because it is no longer possible to synthesize a larger clear instruction transparently.