This is an archive of the discontinued LLVM Phabricator instance.

[mips][mips64r6] b(ge|lt)zal are not available on MIPS32r6/MIPS64r6 and bal is a normal instruction
ClosedPublic

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

Details

Summary

b(ge|lt)zal have been removed in MIPS32r6/MIPS64r6. However, bal (an alias
for 'bgezal $zero, $offset') still remains with the same encoding it had
prior to MIPS32r6/MIPS64r6.

Updated the MipsNaCLELFStreamer, and MipsLongBranch to correctly handle the
MIPS32r6/MIPS64r6 BAL instruction in addition to the existing BAL_BR pseudo.

No changes were required to the CodeGen test that looks for BAL
(test/CodeGen/Mips/longbranch.ll) since the new instruction has the same
syntax.

Depends on D4113

Diff Detail

Event Timeline

dsanders updated this revision to Diff 10350.Jun 12 2014, 5:43 AM
dsanders retitled this revision from to [mips][mips64r6] b(ge|lt)zal are not available on MIPS32r6/MIPS64r6 and bal is a normal instruction.
dsanders updated this object.
dsanders edited the test plan for this revision. (Show Details)
vmedic accepted this revision.Jun 12 2014, 8:35 AM
vmedic edited edge metadata.

LGTM

This revision is now accepted and ready to land.Jun 12 2014, 8:35 AM
dsanders closed this revision.Jun 13 2014, 6:10 AM