This is an archive of the discontinued LLVM Phabricator instance.

[mips][microMIPS] Implement SHLL.PH, SHLL_S.PH, SHLL.QB, SHLLV.PH, SHLLV_S.PH, SHLLV.QB, SHLLV_S.W, SHLL_S.W, SHRA.QB and SHRA_R.QB instructions
ClosedPublic

Authored by zbuljan on Oct 21 2015, 1:18 AM.

Details

Summary

The patch implements microMIPSDSP instructions: SHLL.PH, SHLL_S.PH, SHLL.QB, SHLLV.PH, SHLLV_S.PH, SHLLV.QB, SHLLV_S.W, SHLL_S.W, SHRA.QB and SHRA_R.QB

Diff Detail

Repository
rL LLVM

Event Timeline

zbuljan updated this revision to Diff 37968.Oct 21 2015, 1:18 AM
zbuljan retitled this revision from to [mips][microMIPS] Implement SHLL.PH, SHLL_S.PH, SHLL.QB, SHLLV.PH, SHLLV_S.PH, SHLLV.QB, SHLLV_S.W, SHLL_S.W, SHRA.QB and SHRA_R.QB instructions.
zbuljan updated this object.
zbuljan added subscribers: petarj, llvm-commits.
dsanders accepted this revision.Oct 22 2015, 5:53 AM
dsanders edited edge metadata.

LGTM with a couple nits.

lib/Target/Mips/MicroMipsDSPInstrInfo.td
76 ↗(On Diff #37968)

Could you drop the '_QB'? This base class is used by the other SHLL's too.

80 ↗(On Diff #37968)

This uimm16 should be uimm3, uimm4, or uimm5 depending on the exact instruction. There's no functional difference right now but I'm starting to fix the missing range checks.

If any of these don't exist then add them alongside the other uimm operand definitions.

101 ↗(On Diff #37968)

Could you clarify that this is SHLLV and not SHLL? I was confused by the lack of an immediate in operand list at first.

Also, could you drop the '_QB'? This base class is used by the other SHLLV's too.

This revision is now accepted and ready to land.Oct 22 2015, 5:53 AM
This revision was automatically updated to reflect the committed changes.