Open robertmuth opened 2 years ago
No, because when movss
reads from memory, it clears the rest of the destination register, when movss
uses two registers, it only overwrites 4 bytes in the destination and keeps the rest. This information is important for AsmJit as it can do liveness analysis of code, which means that it needs to know whether a register is completely overwritten or not, which is described by W:
(overwrite) vs w:
(write)
This is basically what you model with W
- W
means writing into a register and zero extending the rest of it. w
means writing only to a specific part of the register.
my bad - I did not pick up the lower vs upper case "w" difference.
what about the second part of my question?
Current movss is reflected in the table as:
Wouldn't it be more systematic to fold them into one entry:
There is also a strange asymmetry where the MR variant only has the W:m32 flavor. Not sure if this is an ISA quirk or a transcription error: