[mips] [IAS] Do not generate redundant move when expanding lw/sw with symbol.
authorToma Tabacu <toma.tabacu@imgtec.com>
Wed, 8 Apr 2015 13:52:41 +0000 (13:52 +0000)
committerToma Tabacu <toma.tabacu@imgtec.com>
Wed, 8 Apr 2015 13:52:41 +0000 (13:52 +0000)
commit739ca842aa2fbacbcdbd9183a78f9c240dfedc4d
tree1c11b5395ebad6f2654db1d3d94da625b7bf903e
parentf1f0734f14c8913ce61e7c6aa88bd6b73512bf7e
[mips] [IAS] Do not generate redundant move when expanding lw/sw with symbol.

Summary:
Even though there is no 2nd register operand in the "lw/sw $8, symbol" case, we still try to find one,
and we end up with $0, which makes us generate an unnecessary "addu $8, $8, $0" (a.k.a. "move $8, $8").

We can avoid this by checking if the 2nd register operand is different from $0, before generating the addu.

Reviewers: dsanders

Reviewed By: dsanders

Subscribers: llvm-commits

Differential Revision: http://reviews.llvm.org/D8055

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@234406 91177308-0d34-0410-b5e6-96231b3b80d8
lib/Target/Mips/AsmParser/MipsAsmParser.cpp
test/MC/Mips/mips-expansions.s