This is an archive of the discontinued LLVM Phabricator instance.

[mips][microMIPS] Implement DERET and DI instructions and check size operand for EXT and DEXT* instructions
ClosedPublic

Authored by zbuljan on Dec 16 2015, 6:36 AM.

Details

Summary

The patch implements microMIPSr6 DERET and DI instructions and adds size operand check for EXT and DEXT* instructions.

Diff Detail

Repository
rL LLVM

Event Timeline

zbuljan updated this revision to Diff 43001.Dec 16 2015, 6:36 AM
zbuljan retitled this revision from to [mips][microMIPS] Implement DERET and DI instructions and check size operand for EXT and DEXT* instructions.
zbuljan updated this object.
zbuljan added subscribers: petarj, llvm-commits.
dsanders accepted this revision.Dec 18 2015, 3:50 AM
dsanders edited edge metadata.

Thanks for adding some checking to the size operand of ext.

LGTM with a couple nits

lib/Target/Mips/MicroMips32r6InstrInfo.td
55–56 ↗(On Diff #43001)

These two are in POOL32A. I must have missed this when EI was added.

lib/Target/Mips/MicroMips64r6InstrInfo.td
68–73 ↗(On Diff #43001)

Could you mention that we don't check the '0 < pos + size <= 63' constraint yet?

test/MC/Mips/micromips64r6/invalid.s
21 ↗(On Diff #43001)

We haven't completely fixed this yet since the valid range for the size is also influenced by the value used for pos. We still need the FIXME but it can be more specific now.

Likewise for the other instances of this FIXME.

This revision is now accepted and ready to land.Dec 18 2015, 3:50 AM
This revision was automatically updated to reflect the committed changes.