This is an archive of the discontinued LLVM Phabricator instance.

[mips][ias] Fix N32 and N64 .cprestore directive when inside .set noat region.
ClosedPublic

Authored by dsanders on May 10 2016, 2:41 AM.

Details

Summary

r268058 unintentionally made the retrieval of the current assembler temporary
unconditional. This was fine for the existing tests but it broke the cases
where the assembler temporary is not needed (N32/N64 or not PIC) and is
unavailable due to a '.set noat' directive.

This should fix FreeBSD's libc.

Diff Detail

Event Timeline

dsanders updated this revision to Diff 56680.May 10 2016, 2:41 AM
dsanders retitled this revision from to [mips][ias] Fix N32 and N64 .cprestore directive when inside .set noat region..
dsanders updated this object.
dsanders added reviewers: sdardis, emaste, seanbruno.
dsanders added a subscriber: llvm-commits.
dsanders updated this revision to Diff 56681.May 10 2016, 2:42 AM

Include the test case.

sdardis accepted this revision.May 10 2016, 5:15 AM
sdardis edited edge metadata.

LGTM with missing include addressed.

lib/Target/Mips/MipsTargetStreamer.h
84–86

Missing "#include <functional>" for use of std::function.

This revision is now accepted and ready to land.May 10 2016, 5:15 AM
seanbruno accepted this revision.May 10 2016, 9:21 AM
seanbruno edited edge metadata.

This does fix the errors I reported. Thanks!

dsanders closed this revision.May 11 2016, 5:54 AM