This is an archive of the discontinued LLVM Phabricator instance.

[X86] Avoid unecessary opsize byte in segment move to memory
ClosedPublic

Authored by niravd on Nov 9 2017, 8:13 AM.

Diff Detail

Repository
rL LLVM

Event Timeline

niravd created this revision.Nov 9 2017, 8:13 AM
craig.topper edited edge metadata.Nov 10 2017, 4:13 PM

gas seems to error on movl %fs,(%rsi) and movl (%rsi), %fs

I wonder if we shouldn't just delete MOV32ms and MOV64ms from InstrSystem.td and change MOV16ms to not have OpSize16. They're declared with mem32 and mem64 anyway which is clearly wrong. Same for MOV32sm and MOV64sm.

niravd updated this revision to Diff 123365.Nov 17 2017, 9:46 AM
niravd edited the summary of this revision. (Show Details)

Add OpSizeIgnore modifier to allow consumption of optional 0x66 bytes and remove invalid instructions.

We now no longer accept movl/movq versions of these instructions but as Craig points out gas doesn't either.

This revision was automatically updated to reflect the committed changes.