[mips] Fix expansion of memory operation if destination register is not a GPR.
authorMatheus Almeida <matheus.almeida@imgtec.com>
Wed, 18 Jun 2014 14:49:56 +0000 (14:49 +0000)
committerMatheus Almeida <matheus.almeida@imgtec.com>
Wed, 18 Jun 2014 14:49:56 +0000 (14:49 +0000)
commitc39b18b306c7681cb155127096a56afbea24a08e
tree7bba92c9087b4361a3e8556f8815b02a87965a5d
parentcacc0625726e9fba539201543a770b4795c22792
[mips] Fix expansion of memory operation if destination register is not a GPR.

Summary:
The assembler tries to reuse the destination register for memory operations whenever
it can but it's not possible to do so if the destination register is not a GPR.

Example:
  ldc1 $f0, sym
should expand to:
  lui $at, %hi(sym)
  ldc1 $f0, %lo(sym)($at)

It's entirely wrong to expand to:
  lui $f0, %hi(sym)
  ldc1 $f0, %lo(sym)($f0)

Reviewers: dsanders

Reviewed By: dsanders

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

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