This is an archive of the discontinued LLVM Phabricator instance.

[mips] Implement the 'dext' aliases and it's disassembly alias.
ClosedPublic

Authored by sdardis on Jun 30 2017, 7:49 AM.

Details

Summary

The other members of the dext family of instructions (dextm, dextu) are
traditionally handled by the assembler selecting the right variant of
'dext' depending on the values of the position and size operands.

When these instructions are disassembled, rather than reporting the
actual instruction, an equivalent aliased form of 'dext' is generated
and is reported. This is to mimic the behaviour of binutils.

Diff Detail

Repository
rL LLVM

Event Timeline

sdardis created this revision.Jun 30 2017, 7:49 AM
atanasyan added inline comments.Sep 12 2017, 8:27 AM
lib/Target/Mips/AsmParser/MipsAsmParser.cpp
4924 ↗(On Diff #104862)

The error message says "size plus position are not in the range 1 .. 63" but if Pos + Size is equal to 0 or 64 this condition is false and we do not show the message. Should we synchronize the condition and the error message?

sdardis updated this revision to Diff 115009.Sep 13 2017, 3:51 AM

Move the invalid tests into generic invalid test files.

Updated check for the dext instruction.

This revision is now accepted and ready to land.Sep 13 2017, 5:16 AM
This revision was automatically updated to reflect the committed changes.