llvm-project/llvm/lib/Target/Mips
Daniel Sanders eda60d217b [mips] Generate code for insert/extract operations when using the N64 ABI and MSA.
Summary:
When using the N64 ABI, element-indices use the i64 type instead of i32.
In many cases, we can use iPTR to account for this but additional patterns
and pseudo's are also required.

This fixes most (but not quite all) failures in the test-suite when using
N64 and MSA together.

Reviewers: vkalintiris

Reviewed By: vkalintiris

Subscribers: llvm-commits

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

llvm-svn: 236494
2015-05-05 10:32:24 +00:00
..
AsmParser [mips] [IAS] Fix error messages for using LI with 64-bit immediates. 2015-05-01 12:19:27 +00:00
Disassembler [mips][microMIPSr6] Implement disassembler support 2015-04-20 14:40:38 +00:00
InstPrinter [MCInstPrinter] Enable MCInstPrinter to change its behavior based on the 2015-03-27 20:36:02 +00:00
MCTargetDesc [mips][microMIPSr6] Implement mips32 to microMIPSr6 mapping support 2015-04-22 13:27:34 +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 Prune redundant libdeps. 2014-07-24 11:45:27 +00:00
MSA.txt Revert r221048 - Test commit 2014-11-01 16:08:03 +00:00
Makefile Reinstate "Nuke the old JIT." 2014-09-02 22:28:02 +00:00
MicroMips32r6InstrFormats.td [mips][microMIPSr6] Implement ADD, ADDU and ADDIU instructions 2015-04-29 15:11:07 +00:00
MicroMips32r6InstrInfo.td [mips][microMIPSr6] Implement MUL, MUH, MULU and MUHU instructions 2015-04-29 17:23:22 +00:00
MicroMipsInstrFPU.td [mips][microMIPS] Fix opcodes of MFHC1 and MTHC1 instructions. 2014-11-19 13:37:51 +00:00
MicroMipsInstrFormats.td [mips][microMIPS] Implement movep instruction 2015-02-10 16:36:20 +00:00
MicroMipsInstrInfo.td [mips][microMIPS] Make usage of NOT16 by code generator 2015-03-11 20:28:31 +00:00
Mips.h [mips] Remove trivial header for the MipsModuleISelDAGToDAG pass. NFC. 2015-03-14 09:20:52 +00:00
Mips.td [mips] Remove redundant periods from -mattr=help descriptions for MIPS. 2015-02-27 10:44:02 +00:00
Mips16FrameLowering.cpp [mips] Implement eliminateCallFramePseudoInstr() in MipsFrameLowering. NFC. 2015-04-02 11:09:40 +00:00
Mips16FrameLowering.h [mips] Implement eliminateCallFramePseudoInstr() in MipsFrameLowering. NFC. 2015-04-02 11:09:40 +00:00
Mips16HardFloat.cpp Purge unused includes throughout libSupport. 2015-03-23 18:07:13 +00:00
Mips16HardFloatInfo.cpp
Mips16HardFloatInfo.h Canonicalize header guards into a common format. 2014-08-13 16:26:38 +00:00
Mips16ISelDAGToDAG.cpp Reapply r235977 "[DebugInfo] Add debug locations to constant SD nodes" 2015-04-28 14:05:47 +00:00
Mips16ISelDAGToDAG.h Canonicalize header guards into a common format. 2014-08-13 16:26:38 +00:00
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
Mips16InstrFormats.td Fix a whole bunch of binary literals which were the wrong size. All were being silently zero extended to the correct width. 2014-08-07 05:46:54 +00:00
Mips16InstrInfo.cpp [mips] Make sure that we don't adjust the stack pointer by zero amount. 2015-04-02 10:14:54 +00:00
Mips16InstrInfo.h [mips] Expose adjustStackPtr() from MipsInstrInfo. NFC. 2015-04-02 10:42:44 +00:00
Mips16InstrInfo.td Replace neverHasSideEffects=1 with hasSideEffects=0 in all .td files. 2014-11-26 00:46:26 +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 [mips][microMIPSr6] Implement initial mapping support 2015-04-20 12:42:08 +00:00
Mips32r6InstrInfo.td [mips][microMIPSr6] Implement MUL, MUH, MULU and MUHU instructions 2015-04-29 17:23:22 +00:00
Mips64InstrInfo.td [mips][msa] Test basic operations for the N32 ABI too. 2015-05-05 08:48:35 +00:00
Mips64r6InstrInfo.td [mips] Fix two patterns that select i32's (for MIPS32r6) / i64's (for MIPS64r6) 2014-07-22 13:36: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 Canonicalize header guards into a common format. 2014-08-13 16:26:38 +00:00
MipsAsmPrinter.cpp [AsmPrinter] Make AsmPrinter's OutStreamer member a unique_ptr. 2015-04-24 19:11:51 +00:00
MipsAsmPrinter.h Remove obsolete comment. 2015-02-21 08:48:23 +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
MipsCallingConv.td Mips fast-isel - handle functions which return i8 or i6 . 2015-04-29 14:17:14 +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
MipsDSPInstrFormats.td Make it possible for the Subtarget to change between function 2014-07-10 17:26:51 +00:00
MipsDSPInstrInfo.td
MipsDelaySlotFiller.cpp [mips] Teach the delay slot filler to remove needless KILL instructions. 2015-04-17 12:01:02 +00:00
MipsFastISel.cpp Mips fast-isel - handle functions which return i8 or i6 . 2015-04-29 14:17:14 +00:00
MipsFrameLowering.cpp [mips] Implement eliminateCallFramePseudoInstr() in MipsFrameLowering. NFC. 2015-04-02 11:09:40 +00:00
MipsFrameLowering.h [mips] Implement eliminateCallFramePseudoInstr() in MipsFrameLowering. NFC. 2015-04-02 11:09:40 +00:00
MipsISelDAGToDAG.cpp [mips] Distinguish 'R', 'ZC', and 'm' inline assembly memory constraint. 2015-03-24 11:26:34 +00:00
MipsISelDAGToDAG.h Reapply r235977 "[DebugInfo] Add debug locations to constant SD nodes" 2015-04-28 14:05:47 +00:00
MipsISelLowering.cpp [mips] Correct 128-bit shifts on 64-bit targets. 2015-04-29 12:28:58 +00:00
MipsISelLowering.h [mips] Distinguish 'R', 'ZC', and 'm' inline assembly memory constraint. 2015-03-24 11:26:34 +00:00
MipsInstrFPU.td [mips] Cleanup old floating-point flag conditions definitions. NFC. 2015-04-21 10:53:57 +00:00
MipsInstrFormats.td [mips][microMIPSr6] Implement mips32 to microMIPSr6 mapping support 2015-04-22 13:27:34 +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 [mips] Expose adjustStackPtr() from MipsInstrInfo. NFC. 2015-04-02 10:42:44 +00:00
MipsInstrInfo.td [mips][microMIPSr6] Implement ADD, ADDU and ADDIU instructions 2015-04-29 15:11:07 +00:00
MipsLongBranch.cpp Remove most of the TargetMachine::getSubtarget/getSubtargetImpl 2015-01-29 23:27:36 +00:00
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 Canonicalize header guards into a common format. 2014-08-13 16:26:38 +00:00
MipsMSAInstrFormats.td Make it possible for the Subtarget to change between function 2014-07-10 17:26:51 +00:00
MipsMSAInstrInfo.td [mips] Generate code for insert/extract operations when using the N64 ABI and MSA. 2015-05-05 10:32:24 +00:00
MipsMachineFunction.cpp [Mips] Use unique_ptr to manage ownership. 2015-04-16 12:43:33 +00:00
MipsMachineFunction.h [Mips] Use unique_ptr to manage ownership. 2015-04-16 12:43:33 +00:00
MipsModuleISelDAGToDAG.cpp Purge unused includes throughout libSupport. 2015-03-23 18:07:13 +00:00
MipsOptimizePICCall.cpp Remove most of the TargetMachine::getSubtarget/getSubtargetImpl 2015-01-29 23:27:36 +00:00
MipsOptionRecord.h Use 'override/final' instead of 'virtual' for overridden methods 2015-04-11 02:11:45 +00:00
MipsOs16.cpp Re-sort includes with sort-includes.py and insert raw_ostream.h where it's used. 2015-03-23 19:32:43 +00:00
MipsRegisterInfo.cpp [mips] Move ABI-dependent register selections to MipsABIInfo. NFC. 2015-04-17 09:50:21 +00:00
MipsRegisterInfo.h Mips: Remove dead declaration 2015-04-30 19:35:43 +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
MipsSEFrameLowering.cpp [mips] Move ABI-dependent register selections to MipsABIInfo. NFC. 2015-04-17 09:50:21 +00:00
MipsSEFrameLowering.h [mips] Implement eliminateCallFramePseudoInstr() in MipsFrameLowering. NFC. 2015-04-02 11:09:40 +00:00
MipsSEISelDAGToDAG.cpp Reapply r235977 "[DebugInfo] Add debug locations to constant SD nodes" 2015-04-28 14:05:47 +00:00
MipsSEISelDAGToDAG.h [mips] Distinguish 'R', 'ZC', and 'm' inline assembly memory constraint. 2015-03-24 11:26:34 +00:00
MipsSEISelLowering.cpp [mips] Generate code for insert/extract operations when using the N64 ABI and MSA. 2015-05-05 10:32: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
MipsSEInstrInfo.cpp [mips] Move ABI-dependent register selections to MipsABIInfo. NFC. 2015-04-17 09:50:21 +00:00
MipsSEInstrInfo.h [mips] Expose adjustStackPtr() from MipsInstrInfo. NFC. 2015-04-02 10:42:44 +00:00
MipsSERegisterInfo.cpp [mips] Move ABI-dependent register selections to MipsABIInfo. NFC. 2015-04-17 09:50:21 +00:00
MipsSERegisterInfo.h Remove the need to cache the subtarget in the Mips TargetRegisterInfo 2015-03-12 05:43:57 +00:00
MipsSchedule.td [mips] Add itineraries for ext and ins instructions. 2015-03-18 06:28:38 +00:00
MipsSelectionDAGInfo.cpp Have MipsSelectionDAGInfo constructor take a DataLayout rather 2014-06-27 04:38:30 +00:00
MipsSelectionDAGInfo.h Canonicalize header guards into a common format. 2014-08-13 16:26:38 +00:00
MipsSubtarget.cpp Fix wording and grammar in Mips subtarget options. 2015-02-20 08:42:34 +00:00
MipsSubtarget.h [mips][microMIPSr6] Implement initial subtarget support 2015-04-20 12:23:06 +00:00
MipsTargetMachine.cpp [mips] Remove trivial header for the MipsModuleISelDAGToDAG pass. NFC. 2015-03-14 09:20:52 +00:00
MipsTargetMachine.h Remove the target independent TargetMachine::getSubtarget and 2015-03-21 04:22:23 +00:00
MipsTargetObjectFile.cpp Grab a subtarget off of a MipsTargetMachine rather than a 2015-03-21 03:13:05 +00:00
MipsTargetObjectFile.h Grab a subtarget off of a MipsTargetMachine rather than a 2015-03-21 03:13:05 +00:00
MipsTargetStreamer.h [mips] [IAS] Add support for the .insn directive. 2015-04-16 09:53:47 +00:00