llvm-6502/lib/Target/Mips
Daniel Sanders 67f6425792 Add infrastructure for support of multiple memory constraints.
Summary:
The operand flag word for ISD::INLINEASM nodes now contains a 15-bit
memory constraint ID when the operand kind is Kind_Mem. This constraint
ID is a numeric equivalent to the constraint code string and is converted
with a target specific hook in TargetLowering.

This patch maps all memory constraints to InlineAsm::Constraint_m so there
is no functional change at this point. It just proves that using these
previously unused bits in the encoding of the flag word doesn't break anything.

The next patch will make each target preserve the current mapping of
everything to Constraint_m for itself while changing the target independent
implementation of the hook to return Constraint_Unknown appropriately. Each
target will then be adapted in separate patches to use appropriate Constraint_*
values.

Reviewers: hfinkel

Reviewed By: hfinkel

Subscribers: hfinkel, jholewinski, llvm-commits

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


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@232027 91177308-0d34-0410-b5e6-96231b3b80d8
2015-03-12 11:00:48 +00:00
..
AsmParser [mips] [IAS] Add missing constraints and improve testing for the .module directive. 2015-03-06 12:15:12 +00:00
Disassembler Reverting r229831 due to multiple ARM/PPC/MIPS build-bot failures. 2015-02-19 11:38:11 +00:00
InstPrinter [mips][microMIPS] MicroMIPS 16-bit unconditional branch instruction B 2015-01-21 12:39:30 +00:00
MCTargetDesc Remove the use of the subtarget in MCCodeEmitter creation and 2015-03-10 22:03:14 +00:00
TargetInfo
CMakeLists.txt MipsABIInfo class is used in different libraries. Moving the files to MCTargetDesc folder(LLVMMipsDesc library) prevents linkage errors. There are no functional changes. 2014-12-17 11:49:56 +00:00
LLVMBuild.txt
Makefile
MicroMipsInstrFormats.td [mips][microMIPS] Implement movep instruction 2015-02-10 16:36:20 +00:00
MicroMipsInstrFPU.td [mips][microMIPS] Fix opcodes of MFHC1 and MTHC1 instructions. 2014-11-19 13:37:51 +00:00
MicroMipsInstrInfo.td [mips][microMIPS] Make usage of NOT16 by code generator 2015-03-11 20:28:31 +00:00
Mips16FrameLowering.cpp Remove most of the TargetMachine::getSubtarget/getSubtargetImpl 2015-01-29 23:27:36 +00:00
Mips16FrameLowering.h
Mips16HardFloat.cpp Move unreferenced passes into the cpp file 2015-03-09 15:50:58 +00:00
Mips16HardFloat.h Move unreferenced passes into the cpp file 2015-03-09 15:50:58 +00:00
Mips16HardFloatInfo.cpp
Mips16HardFloatInfo.h
Mips16InstrFormats.td
Mips16InstrInfo.cpp Remove the need to cache the subtarget in the Mips TargetRegisterInfo 2015-03-12 05:43:57 +00:00
Mips16InstrInfo.h Remove the need to cache the subtarget in the Mips TargetRegisterInfo 2015-03-12 05:43:57 +00:00
Mips16InstrInfo.td Replace neverHasSideEffects=1 with hasSideEffects=0 in all .td files. 2014-11-26 00:46:26 +00:00
Mips16ISelDAGToDAG.cpp Remove most of the TargetMachine::getSubtarget/getSubtargetImpl 2015-01-29 23:27:36 +00:00
Mips16ISelDAGToDAG.h
Mips16ISelLowering.cpp Remove an argument-less call to getSubtargetImpl from TargetLoweringBase. 2015-02-26 00:00:24 +00:00
Mips16ISelLowering.h Re-commit r221056 and others with fix, "[mips] Move F128 argument handling into MipsCCState as we did for returns. NFC." 2014-11-02 16:09:29 +00:00
Mips16RegisterInfo.cpp Remove the need to cache the subtarget in the Mips TargetRegisterInfo 2015-03-12 05:43:57 +00:00
Mips16RegisterInfo.h Remove the need to cache the subtarget in the Mips TargetRegisterInfo 2015-03-12 05:43:57 +00:00
Mips32r6InstrFormats.td
Mips32r6InstrInfo.td [Mips][Disassembler] When disassembler meets cache/pref instructions for r6 it crashes as the access to operands array is out of range. This patch adds dedicated decoder method for R6 CACHE_HINT_DESC class that properly handles decoding of these instructions. 2015-01-29 11:33:41 +00:00
Mips64InstrInfo.td [mips] Rename the LA/LI/DLI TableGen definitions and classes. NFC. 2015-03-04 13:01:14 +00:00
Mips64r6InstrInfo.td
Mips.h Remove most of the TargetMachine::getSubtarget/getSubtargetImpl 2015-01-29 23:27:36 +00:00
Mips.td [mips] Remove redundant periods from -mattr=help descriptions for MIPS. 2015-02-27 10:44:02 +00:00
MipsAnalyzeImmediate.cpp Remove unnecessary copying or replace it with moves in a bunch of places. 2014-10-04 16:55:56 +00:00
MipsAnalyzeImmediate.h
MipsAsmPrinter.cpp Have the MipsAsmPrinter fp stub emission code take a custom 2015-02-21 08:48:22 +00:00
MipsAsmPrinter.h Remove obsolete comment. 2015-02-21 08:48:23 +00:00
MipsCallingConv.td Fix justify error for small structures in varargs for MIPS64BE 2015-02-26 18:35:15 +00:00
MipsCCState.cpp AArch64: Safely handle the incoming sret call argument. 2015-02-16 18:10:47 +00:00
MipsCCState.h Removing LLVM_DELETED_FUNCTION, as MSVC 2012 was the last reason for requiring the macro. NFC; LLVM edition. 2015-02-15 22:54:22 +00:00
MipsCondMov.td [mips] Enable code generation for MIPS-III. 2014-12-12 15:16:46 +00:00
MipsConstantIslandPass.cpp Remove most of the TargetMachine::getSubtarget/getSubtargetImpl 2015-01-29 23:27:36 +00:00
MipsDelaySlotFiller.cpp Have getCalleeSavedRegs take a non-null MachineFunction all the 2015-03-11 21:41:28 +00:00
MipsDSPInstrFormats.td
MipsDSPInstrInfo.td
MipsFastISel.cpp Have getCallPreservedMask and getThisCallPreservedMask take a 2015-03-11 22:42:13 +00:00
MipsFrameLowering.cpp Remove most of the TargetMachine::getSubtarget/getSubtargetImpl 2015-01-29 23:27:36 +00:00
MipsFrameLowering.h
MipsInstrFormats.td [mips] Add octeon branch instructions bbit0/bbit032/bbit1/bbit132 2015-01-20 16:10:51 +00:00
MipsInstrFPU.td [MIPS]Multiple and add instructions for Mips are currently available in mips32r2/mips64r2 and later but should also be available in mips4, mips5, and mips64. This patch fixes the requested features and updates the corresponding test files. 2015-02-25 15:24:37 +00:00
MipsInstrInfo.cpp Update include - this class doesn't use the target machine, but 2015-01-08 18:18:54 +00:00
MipsInstrInfo.h Remove the need to cache the subtarget in the Mips TargetRegisterInfo 2015-03-12 05:43:57 +00:00
MipsInstrInfo.td [mips][microMIPS] Make usage of NOT16 by code generator 2015-03-11 20:28:31 +00:00
MipsISelDAGToDAG.cpp Add infrastructure for support of multiple memory constraints. 2015-03-12 11:00:48 +00:00
MipsISelDAGToDAG.h Add infrastructure for support of multiple memory constraints. 2015-03-12 11:00:48 +00:00
MipsISelLowering.cpp Have getCallPreservedMask and getThisCallPreservedMask take a 2015-03-11 22:42:13 +00:00
MipsISelLowering.h getRegForInlineAsmConstraint wants to use TargetRegisterInfo for 2015-02-26 22:38:43 +00:00
MipsLongBranch.cpp Remove most of the TargetMachine::getSubtarget/getSubtargetImpl 2015-01-29 23:27:36 +00:00
MipsMachineFunction.cpp [mips][microMIPS] Change register class for GP register 2015-02-27 15:03:50 +00:00
MipsMachineFunction.h
MipsMCInstLower.cpp Remove MCStreamer.h include from MCContext.h and explictly include it where necessary. NFC 2015-03-04 01:24:11 +00:00
MipsMCInstLower.h
MipsModuleISelDAGToDAG.cpp Move unreferenced passes into the cpp file 2015-03-09 15:50:58 +00:00
MipsModuleISelDAGToDAG.h Move unreferenced passes into the cpp file 2015-03-09 15:50:58 +00:00
MipsMSAInstrFormats.td
MipsMSAInstrInfo.td [mips] Rename MipsAsmParser functions to conform to the LLVM Coding Standards. No functional changes. 2014-09-04 13:23:44 +00:00
MipsOptimizePICCall.cpp Remove most of the TargetMachine::getSubtarget/getSubtargetImpl 2015-01-29 23:27:36 +00:00
MipsOptionRecord.h Move the Mips target to storing the ABI in the TargetMachine rather 2015-01-26 17:33:46 +00:00
MipsOs16.cpp Move unreferenced passes into the cpp file 2015-03-09 15:50:58 +00:00
MipsOs16.h Move unreferenced passes into the cpp file 2015-03-09 15:50:58 +00:00
MipsRegisterInfo.cpp Remove the need to cache the subtarget in the Mips TargetRegisterInfo 2015-03-12 05:43:57 +00:00
MipsRegisterInfo.h Remove some unnecessary forward declarations and put a couple more 2015-03-12 06:07:16 +00:00
MipsRegisterInfo.td [mips] Honour -mno-odd-spreg for vector insert/extract when MSA is enabled. 2015-02-23 17:22:16 +00:00
MipsSchedule.td
MipsSEFrameLowering.cpp Remove most of the TargetMachine::getSubtarget/getSubtargetImpl 2015-01-29 23:27:36 +00:00
MipsSEFrameLowering.h
MipsSEInstrInfo.cpp Remove the need to cache the subtarget in the Mips TargetRegisterInfo 2015-03-12 05:43:57 +00:00
MipsSEInstrInfo.h Remove dead variable. 2015-01-06 01:12:42 +00:00
MipsSEISelDAGToDAG.cpp [mips] Account for constant-zero operands in ADDE nodes. 2015-02-27 09:01:39 +00:00
MipsSEISelDAGToDAG.h [mips][microMIPS] Implement CodeGen support for SW16 and LW16 instructions 2015-02-04 15:43:17 +00:00
MipsSEISelLowering.cpp Remove an argument-less call to getSubtargetImpl from TargetLoweringBase. 2015-02-26 00:00:24 +00:00
MipsSEISelLowering.h Re-commit r221056 and others with fix, "[mips] Move F128 argument handling into MipsCCState as we did for returns. NFC." 2014-11-02 16:09:29 +00:00
MipsSelectionDAGInfo.cpp
MipsSelectionDAGInfo.h
MipsSERegisterInfo.cpp Remove the need to cache the subtarget in the Mips TargetRegisterInfo 2015-03-12 05:43:57 +00:00
MipsSERegisterInfo.h Remove the need to cache the subtarget in the Mips TargetRegisterInfo 2015-03-12 05:43:57 +00:00
MipsSubtarget.cpp Fix wording and grammar in Mips subtarget options. 2015-02-20 08:42:34 +00:00
MipsSubtarget.h [mips] Add backend support for Mips32r[35] and Mips64r[35]. 2015-02-18 16:24:50 +00:00
MipsTargetMachine.cpp Move the DataLayout to the generic TargetMachine, making it mandatory. 2015-03-12 00:07:24 +00:00
MipsTargetMachine.h Move the DataLayout to the generic TargetMachine, making it mandatory. 2015-03-12 00:07:24 +00:00
MipsTargetObjectFile.cpp Compute the ELF SectionKind from the flags. 2015-01-29 17:33:21 +00:00
MipsTargetObjectFile.h [mips] Add the following MIPS options that control gp-relative addressing of 2014-11-06 13:20:12 +00:00
MipsTargetStreamer.h [mips] [IAS] Add missing constraints and improve testing for the .module directive. 2015-03-06 12:15:12 +00:00
MSA.txt Revert r221048 - Test commit 2014-11-01 16:08:03 +00:00