This is an archive of the discontinued LLVM Phabricator instance.

[mips][mips16] Re-work the inline assembly stubs to work with IAS. NFC.
ClosedPublic

Authored by dsanders on Oct 12 2015, 7:47 AM.

Details

Summary

Previously, we were inserting an InlineAsm statement for each line of the
inline assembly. This works for GAS but it triggers prologue/epilogue
emission when IAS is in use. This caused:

.set noreorder
.cpload $25

to be emitted as:

.set push
.set reorder
.set noreorder
.set pop
.set push
.set reorder
.cpload $25
.set pop

which led to assembler errors and caused the test to fail.

The whitespace-after-comma changes included in this patch are necessary to
match the output when IAS is in use.

Diff Detail

Event Timeline

dsanders updated this revision to Diff 37110.Oct 12 2015, 7:47 AM
dsanders retitled this revision from to [mips][mips16] Re-work the inline assembly stubs to work with IAS. NFC..
dsanders updated this object.
dsanders added a reviewer: vkalintiris.
dsanders added subscribers: llvm-commits, rkotler.
vkalintiris accepted this revision.Oct 20 2015, 5:40 AM
vkalintiris edited edge metadata.

LGTM.

lib/Target/Mips/Mips16HardFloat.cpp
44–52

clang-format reformats this bit.

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

Thanks

lib/Target/Mips/Mips16HardFloat.cpp
44–52

Fixed in the commit