Page MenuHomePhabricator

[mips] Range check uimm20 and fixed a bug this revealed.
ClosedPublic

Authored by dsanders on Dec 15 2015, 4:19 AM.

Details

Summary

The bug was that dextu's operand 3 would print 0-31 instead of 32-63 when
printing assembly. This came up when replacing
MipsInstPrinter::printUnsignedImm() with a version that could handle arbitrary
bit widths.

MipsAsmPrinter::printUnsignedImm*() don't seem to be used so they have been
removed.

Diff Detail

Repository
rL LLVM

Event Timeline

dsanders updated this revision to Diff 42833.Dec 15 2015, 4:19 AM
dsanders retitled this revision from to [mips] Range check uimm20 and fixed a bug this revealed..
dsanders updated this object.
dsanders added a reviewer: vkalintiris.
dsanders added a subscriber: llvm-commits.
dsanders updated this revision to Diff 42845.Dec 15 2015, 6:26 AM

Fixed dinsu which had the same issue as dextu

vkalintiris accepted this revision.Jan 11 2016, 4:23 AM
vkalintiris edited edge metadata.

LGTM

This revision is now accepted and ready to land.Jan 11 2016, 4:23 AM
dsanders updated this revision to Diff 46665.Feb 2 2016, 9:26 AM
dsanders edited edge metadata.

Rebase patch and fix bugs that appeared after this rebase.

Hi Vasileios,

A few issues came up as I went to commit this. Most were fairly minor but one required that I change the way we handle selection between dext/dextu/dextm to avoid regressions. The review for that change is D16810 and I'll commit this once that's committed.

dsanders updated this revision to Diff 49376.Feb 29 2016, 7:36 AM

Rebase before commit

dsanders closed this revision.Feb 29 2016, 8:11 AM
This revision was automatically updated to reflect the committed changes.