OSDN Git Service

[mips] Emit .reloc R_{MICRO}MIPS_JALR along with j(al)r(c) $25
authorVladimir Stefanovic <vladimir.stefanovic@rt-rk.com>
Thu, 17 Jan 2019 21:50:37 +0000 (21:50 +0000)
committerVladimir Stefanovic <vladimir.stefanovic@rt-rk.com>
Thu, 17 Jan 2019 21:50:37 +0000 (21:50 +0000)
commit3af27b49cf8c065da44d64f6f4e89cb790ffc747
treedec26bb82ef752f37ed8e0c05d4b56a344a159bb
parent93f2e218e04462f23a1543ebe1a335d191c346dc
[mips] Emit .reloc R_{MICRO}MIPS_JALR along with j(al)r(c) $25

The callee address is added as an optional operand (MCSymbol) in
AdjustInstrPostInstrSelection() and then used by asm printer to insert:
'.reloc tmplabel, R_MIPS_JALR, symbol
tmplabel:'.
Controlled with '-mips-jalr-reloc', default is true.

Differential revision: https://reviews.llvm.org/D56694

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@351485 91177308-0d34-0410-b5e6-96231b3b80d8
26 files changed:
lib/CodeGen/MachineInstr.cpp
lib/Target/Mips/AsmParser/MipsAsmParser.cpp
lib/Target/Mips/MCTargetDesc/MipsABIInfo.cpp
lib/Target/Mips/MCTargetDesc/MipsBaseInfo.h
lib/Target/Mips/MicroMips32r6InstrInfo.td
lib/Target/Mips/MicroMipsInstrInfo.td
lib/Target/Mips/Mips32r6InstrInfo.td
lib/Target/Mips/MipsAsmPrinter.cpp
lib/Target/Mips/MipsFastISel.cpp
lib/Target/Mips/MipsISelLowering.cpp
lib/Target/Mips/MipsISelLowering.h
lib/Target/Mips/MipsInstrInfo.cpp
lib/Target/Mips/MipsInstrInfo.td
lib/Target/Mips/MipsMCInstLower.cpp
test/CodeGen/Mips/cconv/vector.ll
test/CodeGen/Mips/gprestore.ll
test/CodeGen/Mips/llvm-ir/sdiv.ll
test/CodeGen/Mips/llvm-ir/srem.ll
test/CodeGen/Mips/llvm-ir/udiv.ll
test/CodeGen/Mips/llvm-ir/urem.ll
test/CodeGen/Mips/long-call-attr.ll
test/CodeGen/Mips/long-call-mcount.ll
test/CodeGen/Mips/msa/f16-llvm-ir.ll
test/CodeGen/Mips/o32_cc_byval.ll
test/CodeGen/Mips/reloc-jalr.ll [new file with mode: 0644]
test/CodeGen/Mips/shrink-wrapping.ll