SuccessChanges

Summary

  1. [mips] Remove redundant test case. NFC The `inlineasm-constraint-reg64.ll` test checks the same functionality.
  2. [mips] Name inline asm constraint test cases in a uniform manner. NFC
  3. [mips] Use mult/mflo pattern on 64-bit targets prior to MIPS64 The `MUL` instruction is available starting from the MIPS32/MIPS64 targets.
  4. [mips] Implement .cplocal directive This directive forces to use the alternate register for context pointer. For example, this code: .cplocal $4 jal foo expands to: ld $25, %call16(foo)($4) jalr $25 Differential Revision: https://reviews.llvm.org/D64743
  5. [mips] Support the "o" inline asm constraint As well as other LLVM targets we do not handle "offsettable" memory addresses in any special way. In other words, the "o" constraint is an exact equivalent of the "m" one. But some existing code require the "o" constraint support. This fixes PR42589. Differential Revision: https://reviews.llvm.org/D64792
Revision 366303 by atanasyan:
[mips] Remove redundant test case. NFC

The `inlineasm-constraint-reg64.ll` test checks the same functionality.
Change TypePath in RepositoryPath in Workspace
The file was removed/llvm/trunk/test/CodeGen/Mips/inlineasm64.llllvm.src/test/CodeGen/Mips/inlineasm64.ll
Revision 366302 by atanasyan:
[mips] Name inline asm constraint test cases in a uniform manner. NFC
Change TypePath in RepositoryPath in Workspace
The file was removed/llvm/trunk/test/CodeGen/Mips/inline-asm-i-constraint-i1.llllvm.src/test/CodeGen/Mips/inline-asm-i-constraint-i1.ll
The file was removed/llvm/trunk/test/CodeGen/Mips/inlineasm-cnstrnt-bad-I-1.llllvm.src/test/CodeGen/Mips/inlineasm-cnstrnt-bad-I-1.ll
The file was removed/llvm/trunk/test/CodeGen/Mips/inlineasm-cnstrnt-bad-J.llllvm.src/test/CodeGen/Mips/inlineasm-cnstrnt-bad-J.ll
The file was removed/llvm/trunk/test/CodeGen/Mips/inlineasm-cnstrnt-bad-K.llllvm.src/test/CodeGen/Mips/inlineasm-cnstrnt-bad-K.ll
The file was removed/llvm/trunk/test/CodeGen/Mips/inlineasm-cnstrnt-bad-L.llllvm.src/test/CodeGen/Mips/inlineasm-cnstrnt-bad-L.ll
The file was removed/llvm/trunk/test/CodeGen/Mips/inlineasm-cnstrnt-bad-N.llllvm.src/test/CodeGen/Mips/inlineasm-cnstrnt-bad-N.ll
The file was removed/llvm/trunk/test/CodeGen/Mips/inlineasm-cnstrnt-bad-O.llllvm.src/test/CodeGen/Mips/inlineasm-cnstrnt-bad-O.ll
The file was removed/llvm/trunk/test/CodeGen/Mips/inlineasm-cnstrnt-bad-P.llllvm.src/test/CodeGen/Mips/inlineasm-cnstrnt-bad-P.ll
The file was removed/llvm/trunk/test/CodeGen/Mips/inlineasm-cnstrnt-bad-l1.llllvm.src/test/CodeGen/Mips/inlineasm-cnstrnt-bad-l1.ll
The file was removed/llvm/trunk/test/CodeGen/Mips/inlineasm-cnstrnt-reg.llllvm.src/test/CodeGen/Mips/inlineasm-cnstrnt-reg.ll
The file was removed/llvm/trunk/test/CodeGen/Mips/inlineasm-cnstrnt-reg64.llllvm.src/test/CodeGen/Mips/inlineasm-cnstrnt-reg64.ll
The file was added/llvm/trunk/test/CodeGen/Mips/inlineasm-constraint-R.llllvm.src/test/CodeGen/Mips/inlineasm-constraint-R.ll
The file was added/llvm/trunk/test/CodeGen/Mips/inlineasm-constraint-ZC-1.llllvm.src/test/CodeGen/Mips/inlineasm-constraint-ZC-1.ll
The file was added/llvm/trunk/test/CodeGen/Mips/inlineasm-constraint-ZC-2.llllvm.src/test/CodeGen/Mips/inlineasm-constraint-ZC-2.ll
The file was added/llvm/trunk/test/CodeGen/Mips/inlineasm-constraint-bad-I-1.llllvm.src/test/CodeGen/Mips/inlineasm-constraint-bad-I-1.ll
The file was added/llvm/trunk/test/CodeGen/Mips/inlineasm-constraint-bad-J.llllvm.src/test/CodeGen/Mips/inlineasm-constraint-bad-J.ll
The file was added/llvm/trunk/test/CodeGen/Mips/inlineasm-constraint-bad-K.llllvm.src/test/CodeGen/Mips/inlineasm-constraint-bad-K.ll
The file was added/llvm/trunk/test/CodeGen/Mips/inlineasm-constraint-bad-L.llllvm.src/test/CodeGen/Mips/inlineasm-constraint-bad-L.ll
The file was added/llvm/trunk/test/CodeGen/Mips/inlineasm-constraint-bad-N.llllvm.src/test/CodeGen/Mips/inlineasm-constraint-bad-N.ll
The file was added/llvm/trunk/test/CodeGen/Mips/inlineasm-constraint-bad-O.llllvm.src/test/CodeGen/Mips/inlineasm-constraint-bad-O.ll
The file was added/llvm/trunk/test/CodeGen/Mips/inlineasm-constraint-bad-P.llllvm.src/test/CodeGen/Mips/inlineasm-constraint-bad-P.ll
The file was added/llvm/trunk/test/CodeGen/Mips/inlineasm-constraint-bad-l1.llllvm.src/test/CodeGen/Mips/inlineasm-constraint-bad-l1.ll
The file was added/llvm/trunk/test/CodeGen/Mips/inlineasm-constraint-i1.llllvm.src/test/CodeGen/Mips/inlineasm-constraint-i1.ll
The file was added/llvm/trunk/test/CodeGen/Mips/inlineasm-constraint-m-1.llllvm.src/test/CodeGen/Mips/inlineasm-constraint-m-1.ll
The file was added/llvm/trunk/test/CodeGen/Mips/inlineasm-constraint-m-2.llllvm.src/test/CodeGen/Mips/inlineasm-constraint-m-2.ll
The file was added/llvm/trunk/test/CodeGen/Mips/inlineasm-constraint-o.llllvm.src/test/CodeGen/Mips/inlineasm-constraint-o.ll
The file was added/llvm/trunk/test/CodeGen/Mips/inlineasm-constraint-reg.llllvm.src/test/CodeGen/Mips/inlineasm-constraint-reg.ll
The file was added/llvm/trunk/test/CodeGen/Mips/inlineasm-constraint-reg64.llllvm.src/test/CodeGen/Mips/inlineasm-constraint-reg64.ll
The file was added/llvm/trunk/test/CodeGen/Mips/inlineasm-constraint.llllvm.src/test/CodeGen/Mips/inlineasm-constraint.ll
The file was removed/llvm/trunk/test/CodeGen/Mips/inlineasm-constraint_ZC_2.llllvm.src/test/CodeGen/Mips/inlineasm-constraint_ZC_2.ll
The file was removed/llvm/trunk/test/CodeGen/Mips/inlineasm_constraint.llllvm.src/test/CodeGen/Mips/inlineasm_constraint.ll
The file was removed/llvm/trunk/test/CodeGen/Mips/inlineasm_constraint_R.llllvm.src/test/CodeGen/Mips/inlineasm_constraint_R.ll
The file was removed/llvm/trunk/test/CodeGen/Mips/inlineasm_constraint_ZC.llllvm.src/test/CodeGen/Mips/inlineasm_constraint_ZC.ll
The file was removed/llvm/trunk/test/CodeGen/Mips/inlineasm_constraint_m.llllvm.src/test/CodeGen/Mips/inlineasm_constraint_m.ll
The file was removed/llvm/trunk/test/CodeGen/Mips/inlineasm_constraint_o.llllvm.src/test/CodeGen/Mips/inlineasm_constraint_o.ll
The file was removed/llvm/trunk/test/CodeGen/Mips/inlineasmmemop.llllvm.src/test/CodeGen/Mips/inlineasmmemop.ll
Revision 366301 by atanasyan:
[mips] Use mult/mflo pattern on 64-bit targets prior to MIPS64

The `MUL` instruction is available starting from the MIPS32/MIPS64 targets.
Change TypePath in RepositoryPath in Workspace
The file was modified/llvm/trunk/lib/Target/Mips/Mips64InstrInfo.td (diff)llvm.src/lib/Target/Mips/Mips64InstrInfo.td
The file was modified/llvm/trunk/test/CodeGen/Mips/llvm-ir/mul.ll (diff)llvm.src/test/CodeGen/Mips/llvm-ir/mul.ll
Revision 366300 by atanasyan:
[mips] Implement .cplocal directive

This directive forces to use the alternate register for context pointer.
For example, this code:
  .cplocal $4
  jal foo
expands to:
  ld    $25, %call16(foo)($4)
  jalr  $25

Differential Revision: https://reviews.llvm.org/D64743
Change TypePath in RepositoryPath in Workspace
The file was modified/llvm/trunk/lib/Target/Mips/AsmParser/MipsAsmParser.cpp (diff)llvm.src/lib/Target/Mips/AsmParser/MipsAsmParser.cpp
The file was modified/llvm/trunk/lib/Target/Mips/MCTargetDesc/MipsTargetStreamer.cpp (diff)llvm.src/lib/Target/Mips/MCTargetDesc/MipsTargetStreamer.cpp
The file was modified/llvm/trunk/lib/Target/Mips/MipsTargetStreamer.h (diff)llvm.src/lib/Target/Mips/MipsTargetStreamer.h
The file was added/llvm/trunk/test/MC/Mips/cplocal-bad.sllvm.src/test/MC/Mips/cplocal-bad.s
The file was added/llvm/trunk/test/MC/Mips/cplocal.sllvm.src/test/MC/Mips/cplocal.s
Revision 366299 by atanasyan:
[mips] Support the "o" inline asm constraint

As well as other LLVM targets we do not handle "offsettable"
memory addresses in any special way. In other words, the "o" constraint
is an exact equivalent of the "m" one. But some existing code require
the "o" constraint support.

This fixes PR42589.

Differential Revision: https://reviews.llvm.org/D64792
Change TypePath in RepositoryPath in Workspace
The file was modified/llvm/trunk/lib/Target/Mips/MipsISelLowering.h (diff)llvm.src/lib/Target/Mips/MipsISelLowering.h
The file was modified/llvm/trunk/lib/Target/Mips/MipsSEISelDAGToDAG.cpp (diff)llvm.src/lib/Target/Mips/MipsSEISelDAGToDAG.cpp
The file was added/llvm/trunk/test/CodeGen/Mips/inlineasm_constraint_o.llllvm.src/test/CodeGen/Mips/inlineasm_constraint_o.ll