This is an archive of the discontinued LLVM Phabricator instance.

[mips][mips64r6] ll, sc, lld, and scd are re-encoded on MIPS32r6/MIPS64r6.
ClosedPublic

Authored by dsanders on Jun 12 2014, 5:52 AM.

Details

Summary

The linked-load, store-conditional operations have been re-encoded such
that have a 9-bit offset instead of the 16-bit offset they have prior to
MIPS32r6/MIPS64r6.

While implementing this, I noticed that the atomic load/store pseudos always
emit a sign extension using sll and sra. I have improved this to use seb/seh
when they are available (MIPS32r2/MIPS64r2 and above).

Depends on D4118

Diff Detail

Event Timeline

dsanders updated this revision to Diff 10356.Jun 12 2014, 5:52 AM
dsanders retitled this revision from to [mips][mips64r6] ll, sc, lld, and scd are re-encoded on MIPS32r6/MIPS64r6..
dsanders updated this object.
dsanders edited the test plan for this revision. (Show Details)
vmedic accepted this revision.Jun 16 2014, 6:06 AM
vmedic edited edge metadata.

LGTM

This revision is now accepted and ready to land.Jun 16 2014, 6:06 AM
dsanders closed this revision.Jun 16 2014, 6:20 AM