llvm-6502/lib/Target/Mips
Reed Kotler fba2a769a1 This patch has two main functions:
1) Fix a specific bug when certain conversion functions are called in a program compiled as mips16 with hard float and
the program is linked as c++. There are two libraries that are reversed in the link order with gcc/g++ and clang/clang++ for
mips16 in this case and the proper stubs will then not be called. These stubs are normally handled in the Mips16HardFloat pass
but in this case we don't know at that time that we need to generate the stubs. This must all be handled later in code generation
and we have moved this functionality to MipsAsmPrinter. When linked as C (gcc or clang) the proper stubs are linked in from libc.

2) Set up the infrastructure to handle 90% of what is in the Mips16HardFloat pass in this new area of MipsAsmPrinter. This is a more
logical place to handle this and we have known for some time that we needed to move the code later and not implement it using
inline asm as we do now but it was not clear exactly where to do this and what mechanism should be used. Now it's clear to us
how to do this and this patch contains the infrastructure to move most of this to MipsAsmPrinter but the actual moving will be done
in a follow on patch. The same infrastructure is used to fix this current bug as described in #1. This change was requested by the list
during the original putback of the Mips16HardFloat pass but was not practical for us do at that time.



git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@201426 91177308-0d34-0410-b5e6-96231b3b80d8
2014-02-14 19:16:39 +00:00
..
AsmParser [mips] Implement %hi(sym1 - sym2) and %lo(sym1 - sym2) expressions 2014-02-04 18:41:57 +00:00
Disassembler
InstPrinter [mips] Implement %hi(sym1 - sym2) and %lo(sym1 - sym2) expressions 2014-02-04 18:41:57 +00:00
MCTargetDesc Remove support for not using .loc directives. 2014-02-05 18:00:21 +00:00
TargetInfo Prune redundant dependencies in LLVMBuild.txt. 2013-12-11 00:30:57 +00:00
CMakeLists.txt This patch has two main functions: 2014-02-14 19:16:39 +00:00
LLVMBuild.txt Add proper dependencies to LLVMBuild.txt in llvm/lib. 2013-12-10 05:39:34 +00:00
Makefile
MicroMipsInstrFormats.td Support for microMIPS FPU instructions 2. 2013-12-25 10:09:27 +00:00
MicroMipsInstrFPU.td [mips][sched] Split IIFmoveC1 into II_M[FT]C1, II_M[FT]HC1, II_DM[FT]C1 2014-01-21 15:03:52 +00:00
MicroMipsInstrInfo.td [mips][sched] Split IILoad into II_L[BHWD], II_L[BHW]U, II_L[WD][LR], and II_RESTORE 2014-01-21 15:21:14 +00:00
Mips16FrameLowering.cpp Fix some indentation. 2013-12-15 23:03:35 +00:00
Mips16FrameLowering.h
Mips16HardFloat.cpp This patch has two main functions: 2014-02-14 19:16:39 +00:00
Mips16HardFloat.h
Mips16HardFloatInfo.cpp This patch has two main functions: 2014-02-14 19:16:39 +00:00
Mips16HardFloatInfo.h This patch has two main functions: 2014-02-14 19:16:39 +00:00
Mips16InstrFormats.td
Mips16InstrInfo.cpp remove an uneeded statement (condition is covered by the statement 2013-12-15 23:33:59 +00:00
Mips16InstrInfo.h
Mips16InstrInfo.td [mips][sched] Split IIStore into II_S[BHWD], II_S[WD][LR], and II_SAVE 2014-01-23 10:31:31 +00:00
Mips16ISelDAGToDAG.cpp Re-sort all of the includes with ./utils/sort_includes.py so that 2014-01-07 11:48:04 +00:00
Mips16ISelDAGToDAG.h
Mips16ISelLowering.cpp This patch has two main functions: 2014-02-14 19:16:39 +00:00
Mips16ISelLowering.h Add address space argument to allowsUnalignedMemoryAccess. 2014-02-05 23:15:53 +00:00
Mips16RegisterInfo.cpp Re-sort all of the includes with ./utils/sort_includes.py so that 2014-01-07 11:48:04 +00:00
Mips16RegisterInfo.h
Mips64InstrInfo.td [mips][sched] Split IIStore into II_S[BHWD], II_S[WD][LR], and II_SAVE 2014-01-23 10:31:31 +00:00
Mips.h
Mips.td
MipsAnalyzeImmediate.cpp
MipsAnalyzeImmediate.h
MipsAsmPrinter.cpp This patch has two main functions: 2014-02-14 19:16:39 +00:00
MipsAsmPrinter.h This patch has two main functions: 2014-02-14 19:16:39 +00:00
MipsCallingConv.td [mips] Forbid the use of registers t6, t7 and t8 if the target is NaCl. 2014-02-07 17:16:40 +00:00
MipsCodeEmitter.cpp Re-sort all of the includes with ./utils/sort_includes.py so that 2014-01-07 11:48:04 +00:00
MipsCondMov.td [mips][sched] Split IIFmove into II_C[FT]C1, II_MOV[FNTZ]_[SD], II_MOV_[SD] 2014-01-21 11:28:03 +00:00
MipsConstantIslandPass.cpp Adjust offsets for max load instruction offsets. This is more pessimistic 2014-01-16 00:47:46 +00:00
MipsDelaySlotFiller.cpp
MipsDSPInstrFormats.td
MipsDSPInstrInfo.td
MipsFrameLowering.cpp
MipsFrameLowering.h
MipsInstrFormats.td Support for microMIPS FPU instructions 2. 2013-12-25 10:09:27 +00:00
MipsInstrFPU.td [mips] Add NaCl target and forbid indexed loads and stores for it 2014-02-05 17:19:30 +00:00
MipsInstrInfo.cpp
MipsInstrInfo.h
MipsInstrInfo.td [mips] Add NaCl target and forbid indexed loads and stores for it 2014-02-05 17:19:30 +00:00
MipsISelDAGToDAG.cpp Re-sort all of the includes with ./utils/sort_includes.py so that 2014-01-07 11:48:04 +00:00
MipsISelDAGToDAG.h
MipsISelLowering.cpp Remove unnecessary #includes. 2014-01-06 06:00:00 +00:00
MipsISelLowering.h Re-sort all of the includes with ./utils/sort_includes.py so that 2014-01-07 11:48:04 +00:00
MipsJITInfo.cpp
MipsJITInfo.h
MipsLongBranch.cpp
MipsMachineFunction.cpp
MipsMachineFunction.h This patch has two main functions: 2014-02-14 19:16:39 +00:00
MipsMCInstLower.cpp Move the llvm mangler to lib/IR. 2014-01-07 21:19:40 +00:00
MipsMCInstLower.h
MipsModuleISelDAGToDAG.cpp
MipsModuleISelDAGToDAG.h
MipsMSAInstrFormats.td [mips][msa] Add DLSA instruction. 2014-02-10 12:05:17 +00:00
MipsMSAInstrInfo.td [mips][msa] Add DLSA instruction. 2014-02-10 12:05:17 +00:00
MipsOptimizePICCall.cpp Re-sort all of the includes with ./utils/sort_includes.py so that 2014-01-07 11:48:04 +00:00
MipsOs16.cpp
MipsOs16.h
MipsRegisterInfo.cpp This patch has two main functions: 2014-02-14 19:16:39 +00:00
MipsRegisterInfo.h
MipsRegisterInfo.td
MipsRelocations.h
MipsSchedule.td [mips][sched] Split IIStore into II_S[BHWD], II_S[WD][LR], and II_SAVE 2014-01-23 10:31:31 +00:00
MipsSEFrameLowering.cpp
MipsSEFrameLowering.h
MipsSEInstrInfo.cpp
MipsSEInstrInfo.h
MipsSEISelDAGToDAG.cpp Re-sort all of the includes with ./utils/sort_includes.py so that 2014-01-07 11:48:04 +00:00
MipsSEISelDAGToDAG.h
MipsSEISelLowering.cpp [mips][msa] Add DLSA instruction. 2014-02-10 12:05:17 +00:00
MipsSEISelLowering.h Add address space argument to allowsUnalignedMemoryAccess. 2014-02-05 23:15:53 +00:00
MipsSelectionDAGInfo.cpp
MipsSelectionDAGInfo.h
MipsSERegisterInfo.cpp
MipsSERegisterInfo.h
MipsSubtarget.cpp [mips] Add NaCl target and forbid indexed loads and stores for it 2014-02-05 17:19:30 +00:00
MipsSubtarget.h [mips] Forbid the use of registers t6, t7 and t8 if the target is NaCl. 2014-02-07 17:16:40 +00:00
MipsTargetMachine.cpp Re-sort all of the includes with ./utils/sort_includes.py so that 2014-01-07 11:48:04 +00:00
MipsTargetMachine.h
MipsTargetObjectFile.cpp Pass the Mangler by reference. 2014-02-08 14:53:28 +00:00
MipsTargetObjectFile.h Pass the Mangler by reference. 2014-02-08 14:53:28 +00:00
MipsTargetStreamer.h Remove another hasRawTextSupport. 2014-01-31 23:10:26 +00:00
MSA.txt