This is an archive of the discontinued LLVM Phabricator instance.

[mips][microMIPS] Implement JRADDIUSP instruction
ClosedPublic

Authored by jkolek on Aug 25 2014, 3:40 AM.

Details

Summary

Implement 16-bit microMIPS jump and adjust stack pointer instruction - JRADDIUSP.

Diff Detail

Repository
rL LLVM

Event Timeline

jkolek updated this revision to Diff 12896.Aug 25 2014, 3:40 AM
jkolek retitled this revision from to [mips][microMIPS] Implement JRADDIUSP instruction.
jkolek updated this object.
jkolek edited the test plan for this revision. (Show Details)
jkolek added reviewers: dsanders, vmedic.
jkolek added a subscriber: zoran.jovanovic.
dsanders edited edge metadata.Sep 2 2014, 5:51 AM

LGTM with a couple naming changes for consistency with similar existing code.

lib/Target/Mips/MCTargetDesc/MipsMCCodeEmitter.cpp
354 ↗(On Diff #12896)

The other similar functions assert that the bits shifted out are zero.

lib/Target/Mips/MCTargetDesc/MipsMCCodeEmitter.h
79 ↗(On Diff #12896)

'Shr2' is inconsistent with the other shifted immediates. I think it should be called 'getUImm5Lsl2Encoding' as per getSimm19Lsl2Encoding() and similar.

lib/Target/Mips/MicroMipsInstrInfo.td
7–9 ↗(On Diff #12896)

Similar to above: Should be uimm5_lsl2 for consistency with simm19_lsl2 and similar.

jkolek updated this revision to Diff 13632.Sep 12 2014, 7:07 AM
jkolek edited edge metadata.

Names fixed.

vmedic accepted this revision.Sep 12 2014, 7:11 AM
vmedic edited edge metadata.

LGTM with a nit.

lib/Target/Mips/MicroMipsInstrInfo.td
114 ↗(On Diff #13632)

Allignment

This revision is now accepted and ready to land.Sep 12 2014, 7:11 AM
jkolek updated this revision to Diff 13633.Sep 12 2014, 7:13 AM
jkolek edited edge metadata.

Alignment fixed.

Diffusion closed this revision.Sep 12 2014, 7:39 AM
Diffusion updated this revision to Diff 13634.

Closed by commit rL217681 (authored by zjovanovic).

jkolek added a subscriber: Unknown Object (MLST).Nov 18 2014, 5:55 AM