llvm-project/llvm/lib/Target/Mips
Simon Dardis da96c43682 [MIPS] Handle PIC load address macro instructions in N64.
In particular, use CALL16 (similar to O32) for address loads into T9 for certain
cases.  Otherwise use a %got_disp relocation to load the address of a symbol.
Small offsets (small enough to fit in a 16-bit signed immediate) can be used and
are added to the symbol address after it is loaded from the GOT.  Larger offsets
are currently unsupported and result in an error from the assembler.

Reviewers: sdardis

Reviewed By: sdardis

Patch by: John Baldwin

Subscribers: llvm-commits, seanbruno, arichardson, emaste, dim

Differential Revision: https://reviews.llvm.org/D33948

llvm-svn: 306831
2017-06-30 15:44:27 +00:00
..
AsmParser [MIPS] Handle PIC load address macro instructions in N64. 2017-06-30 15:44:27 +00:00
Disassembler Sort the remaining #include lines in include/... and lib/.... 2017-06-06 11:49:48 +00:00
InstPrinter
MCTargetDesc Remove redundant argument. 2017-06-24 00:26:57 +00:00
TargetInfo
CMakeLists.txt [mips][microMIPS] Adding code size reduction pass for MicroMIPS 2017-04-27 13:10:48 +00:00
LLVMBuild.txt
MSA.txt Revert: r286868 - Test commit 2016-11-14 19:10:56 +00:00
MicroMips32r6InstrFormats.td
MicroMips32r6InstrInfo.td [mips] seb, seh instruction aliases 2016-11-22 19:17:23 +00:00
MicroMips64r6InstrFormats.td
MicroMips64r6InstrInfo.td [mips] Add instruction aliases for ds(r|l)l. 2017-06-27 13:35:17 +00:00
MicroMipsDSPInstrFormats.td
MicroMipsDSPInstrInfo.td
MicroMipsInstrFPU.td [mips] Correct c.cond.fmt instruction definition. 2017-01-16 13:55:58 +00:00
MicroMipsInstrFormats.td [mips] Correct c.cond.fmt instruction definition. 2017-01-16 13:55:58 +00:00
MicroMipsInstrInfo.td [mips][ias] Further relax operands of certain assembly instructions 2017-02-23 12:40:58 +00:00
MicroMipsSizeReduction.cpp Revert "[mips][microMIPS] Extending size reduction pass with ADDIUSP and ADDIUR1SP" 2017-06-16 14:00:33 +00:00
Mips.h [LegacyPassManager] Remove TargetMachine constructors 2017-05-18 17:21:13 +00:00
Mips.td [mips] Add madd4 subtarget feature 2017-06-06 15:33:01 +00:00
Mips16FrameLowering.cpp Sort the remaining #include lines in include/... and lib/.... 2017-06-06 11:49:48 +00:00
Mips16FrameLowering.h
Mips16HardFloat.cpp [LegacyPassManager] Remove TargetMachine constructors 2017-05-18 17:21:13 +00:00
Mips16HardFloatInfo.cpp
Mips16HardFloatInfo.h
Mips16ISelDAGToDAG.cpp
Mips16ISelDAGToDAG.h
Mips16ISelLowering.cpp
Mips16ISelLowering.h
Mips16InstrFormats.td
Mips16InstrInfo.cpp
Mips16InstrInfo.h
Mips16InstrInfo.td [mips] Correct mips16 return instructions definitions 2017-02-14 21:53:23 +00:00
Mips16RegisterInfo.cpp
Mips16RegisterInfo.h
Mips32r6InstrFormats.td
Mips32r6InstrInfo.td Reland r306095: [mips] Fix reg positions in the aui/daui instructions 2017-06-23 22:37:19 +00:00
Mips64InstrInfo.td [mips] Add instruction aliases for ds(r|l)l. 2017-06-27 13:35:17 +00:00
Mips64r6InstrInfo.td
MipsAnalyzeImmediate.cpp
MipsAnalyzeImmediate.h
MipsAsmPrinter.cpp Move Object format code to lib/BinaryFormat. 2017-06-07 03:48:56 +00:00
MipsAsmPrinter.h [LLVM][XRAY][MIPS] Support xray on mips/mipsel/mips64/mips64el 2017-02-15 10:48:11 +00:00
MipsCCState.cpp Reland "[SelectionDAG] Enable target specific vector scalarization of calls and returns" 2017-06-09 14:37:08 +00:00
MipsCCState.h Reland "[SelectionDAG] Enable target specific vector scalarization of calls and returns" 2017-06-09 14:37:08 +00:00
MipsCallingConv.td Reland "[SelectionDAG] Enable target specific vector scalarization of calls and returns" 2017-06-09 14:37:08 +00:00
MipsCondMov.td
MipsConstantIslandPass.cpp Sort the remaining #include lines in include/... and lib/.... 2017-06-06 11:49:48 +00:00
MipsDSPInstrFormats.td
MipsDSPInstrInfo.td [mips][dsp] Modify repl.ph to accept signed immediate values 2017-06-07 14:48:46 +00:00
MipsDelaySlotFiller.cpp fix trivial typos, NFC 2017-06-30 09:11:50 +00:00
MipsEVAInstrFormats.td
MipsEVAInstrInfo.td
MipsFastISel.cpp Sort the remaining #include lines in include/... and lib/.... 2017-06-06 11:49:48 +00:00
MipsFrameLowering.cpp Move size and alignment information of regclass to TargetRegisterInfo 2017-04-24 18:55:33 +00:00
MipsFrameLowering.h
MipsHazardSchedule.cpp [mips] Deal with empty blocks in the mips hazard scheduler 2017-04-04 11:28:53 +00:00
MipsISelDAGToDAG.cpp
MipsISelDAGToDAG.h
MipsISelLowering.cpp Revert "[mips] Fix multiprecision arithmetic." 2017-06-29 20:59:47 +00:00
MipsISelLowering.h Reland "[SelectionDAG] Enable target specific vector scalarization of calls and returns" 2017-06-09 14:37:08 +00:00
MipsInstrFPU.td [mips] Add madd4 subtarget feature 2017-06-06 15:33:01 +00:00
MipsInstrFormats.td [mips] Correct c.cond.fmt instruction definition. 2017-01-16 13:55:58 +00:00
MipsInstrInfo.cpp [MIPS] BuildCondBr should preserve MO flags 2017-06-13 14:11:29 +00:00
MipsInstrInfo.h [mips][msa] Prevent output operand from commuting for dpadd_[su].df ins 2017-03-31 14:31:55 +00:00
MipsInstrInfo.td [mips] Add madd4 subtarget feature 2017-06-06 15:33:01 +00:00
MipsLongBranch.cpp Revert r305382, it caused PR33513. 2017-06-19 19:48:59 +00:00
MipsMCInstLower.cpp
MipsMCInstLower.h
MipsMSAInstrFormats.td
MipsMSAInstrInfo.td [mips][msa] Mask vectors holding shift amounts 2017-04-20 13:26:46 +00:00
MipsMachineFunction.cpp evert "[mips] Fix test mips64fpldst.ll with machine verifier enabled" 2017-06-07 11:21:37 +00:00
MipsMachineFunction.h [Mips] Fix some Clang-tidy modernize and Include What You Use warnings; other minor fixes (NFC). 2017-01-30 23:21:32 +00:00
MipsModuleISelDAGToDAG.cpp [LegacyPassManager] Remove TargetMachine constructors 2017-05-18 17:21:13 +00:00
MipsOptimizePICCall.cpp Sort the remaining #include lines in include/... and lib/.... 2017-06-06 11:49:48 +00:00
MipsOptionRecord.h [Mips] Fix some Clang-tidy modernize and Include What You Use warnings; other minor fixes (NFC). 2017-02-01 01:22:51 +00:00
MipsOs16.cpp Sort the remaining #include lines in include/... and lib/.... 2017-06-06 11:49:48 +00:00
MipsRegisterInfo.cpp Reland "[SelectionDAG] Enable target specific vector scalarization of calls and returns" 2017-06-09 14:37:08 +00:00
MipsRegisterInfo.h
MipsRegisterInfo.td [mips] Expansion of LI.S and LI.D 2017-05-30 09:33:43 +00:00
MipsSEFrameLowering.cpp Sort the remaining #include lines in include/... and lib/.... 2017-06-06 11:49:48 +00:00
MipsSEFrameLowering.h [Mips] Fix some Clang-tidy modernize and Include What You Use warnings; other minor fixes (NFC). 2017-02-01 01:22:51 +00:00
MipsSEISelDAGToDAG.cpp Revert "[mips] Fix multiprecision arithmetic." 2017-06-29 20:59:47 +00:00
MipsSEISelDAGToDAG.h Revert "[mips] Fix multiprecision arithmetic." 2017-06-29 20:59:47 +00:00
MipsSEISelLowering.cpp Revert "[mips] Fix multiprecision arithmetic." 2017-06-29 20:59:47 +00:00
MipsSEISelLowering.h [mips][msa] Implement f16 support 2016-11-18 16:17:44 +00:00
MipsSEInstrInfo.cpp Move value type list from TargetRegisterClass to TargetRegisterInfo 2017-04-24 19:51:12 +00:00
MipsSEInstrInfo.h
MipsSERegisterInfo.cpp
MipsSERegisterInfo.h
MipsSchedule.td
MipsScheduleGeneric.td
MipsScheduleP5600.td
MipsSubtarget.cpp [mips] Add madd4 subtarget feature 2017-06-06 15:33:01 +00:00
MipsSubtarget.h [mips] Fix documentation of member variable. NFCI. 2017-06-15 16:28:28 +00:00
MipsTargetMachine.cpp Sort the remaining #include lines in include/... and lib/.... 2017-06-06 11:49:48 +00:00
MipsTargetMachine.h TargetMachine: Indicate whether machine verifier passes. 2017-05-31 18:41:23 +00:00
MipsTargetObjectFile.cpp Move Object format code to lib/BinaryFormat. 2017-06-07 03:48:56 +00:00
MipsTargetObjectFile.h [mips] Fix debug information for __thread variable 2017-01-20 17:53:30 +00:00
MipsTargetStreamer.h
Relocation.txt [Mips] Document Mips Backend Relocation Principles 2017-04-21 14:49:27 +00:00