llvm-project/llvm/lib/Target/Mips
Daniel Sanders c171f65a87 [mips] Add cache and pref instructions
Summary:
cache and pref were added in MIPS-III, and MIPS32 but were re-encoded in
MIPS32r6/MIPS64r6 to use a 9-bit offset rather than the 16-bit offset
available to earlier cores.

Resolved the decoding conflict between pref and lwc3.

Depends on D4115

Reviewers: zoran.jovanovic, jkolek, vmedic

Reviewed By: vmedic

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

llvm-svn: 210900
2014-06-13 13:15:59 +00:00
..
AsmParser [mips][mips64r6] bc1[tf] are not available on MIPS32r6/MIPS64r6 2014-06-12 15:00:17 +00:00
Disassembler [mips] Add cache and pref instructions 2014-06-13 13:15:59 +00:00
InstPrinter [mips][mips64r6] Add Relocations R_MIPS_PCHI16, R_MIPS_PCLO16 2014-05-27 14:58:51 +00:00
MCTargetDesc [mips][mips64r6] b(ge|lt)zal are not available on MIPS32r6/MIPS64r6 and bal is a normal instruction 2014-06-13 13:02:52 +00:00
TargetInfo
CMakeLists.txt enable fast isel tablegen files for Mips 2014-04-25 18:36:38 +00:00
LLVMBuild.txt
MSA.txt
Makefile enable fast isel tablegen files for Mips 2014-04-25 18:36:38 +00:00
MicroMipsInstrFPU.td [mips][mips64r6] bc1[tf] are not available on MIPS32r6/MIPS64r6 2014-06-12 15:00:17 +00:00
MicroMipsInstrFormats.td
MicroMipsInstrInfo.td [mips] Marked up instructions added in MIPS32r2 and tested that IAS for -mcpu=mips(2|32) does not accept them 2014-05-13 11:45:36 +00:00
Mips.h
Mips.td [mips] Marked up instructions added in MIPS32r2 and tested that IAS for -mcpu=mips(2|32) does not accept them 2014-05-13 11:45:36 +00:00
Mips16FrameLowering.cpp
Mips16FrameLowering.h [C++11] Add 'override' keywords and remove 'virtual'. Additionally add 'final' and leave 'virtual' on some methods that are marked virtual without overriding anything and have no obvious overrides themselves. Mips edition 2014-04-29 07:58:02 +00:00
Mips16HardFloat.cpp [C++] Use 'nullptr'. Target edition. 2014-04-25 05:30:21 +00:00
Mips16HardFloat.h [C++11] Add 'override' keywords and remove 'virtual'. Additionally add 'final' and leave 'virtual' on some methods that are marked virtual without overriding anything and have no obvious overrides themselves. Mips edition 2014-04-29 07:58:02 +00:00
Mips16HardFloatInfo.cpp [C++] Use 'nullptr'. Target edition. 2014-04-25 05:30:21 +00:00
Mips16HardFloatInfo.h
Mips16ISelDAGToDAG.cpp [mips] Replace FeatureFPIdx with FeatureMips4_32r2 2014-05-12 11:56:16 +00:00
Mips16ISelDAGToDAG.h [C++11] Add 'override' keywords and remove 'virtual'. Additionally add 'final' and leave 'virtual' on some methods that are marked virtual without overriding anything and have no obvious overrides themselves. Mips edition 2014-04-29 07:58:02 +00:00
Mips16ISelLowering.cpp Target: change member from reference to pointer 2014-05-17 21:50:01 +00:00
Mips16ISelLowering.h [C++11] Add 'override' keywords and remove 'virtual'. Additionally add 'final' and leave 'virtual' on some methods that are marked virtual without overriding anything and have no obvious overrides themselves. Mips edition 2014-04-29 07:58:02 +00:00
Mips16InstrFormats.td
Mips16InstrInfo.cpp
Mips16InstrInfo.h [C++11] Add 'override' keywords and remove 'virtual'. Additionally add 'final' and leave 'virtual' on some methods that are marked virtual without overriding anything and have no obvious overrides themselves. Mips edition 2014-04-29 07:58:02 +00:00
Mips16InstrInfo.td
Mips16RegisterInfo.cpp
Mips16RegisterInfo.h [C++11] Add 'override' keywords and remove 'virtual'. Additionally add 'final' and leave 'virtual' on some methods that are marked virtual without overriding anything and have no obvious overrides themselves. Mips edition 2014-04-29 07:58:02 +00:00
Mips32r6InstrFormats.td [mips] Add cache and pref instructions 2014-06-13 13:15:59 +00:00
Mips32r6InstrInfo.td [mips] Add cache and pref instructions 2014-06-13 13:15:59 +00:00
Mips64InstrInfo.td [mips][mips64r6] daddi is not available on MIPS64r6 2014-06-13 12:49:06 +00:00
Mips64r6InstrInfo.td [mips][mips64r6] daddi is not available on MIPS64r6 2014-06-13 12:49:06 +00:00
MipsAnalyzeImmediate.cpp
MipsAnalyzeImmediate.h
MipsAsmPrinter.cpp [mips] Optimize long branch for MIPS64 by removing %higher and %highest. 2014-05-27 18:53:06 +00:00
MipsAsmPrinter.h [mips] Fix MipsLongBranch pass to work when the offset from the branch to the 2014-04-30 15:06:25 +00:00
MipsCallingConv.td
MipsCodeEmitter.cpp [mips][mips64r6] Add LDPC instruction 2014-06-09 09:49:51 +00:00
MipsCondMov.td [mips][mips64r6] c.cond.fmt, mov[fntz], and mov[fntz].[ds] are not available on MIPS32r6/MIPS64r6 2014-06-12 13:39:06 +00:00
MipsConstantIslandPass.cpp [C++11] Add 'override' keywords and remove 'virtual'. Additionally add 'final' and leave 'virtual' on some methods that are marked virtual without overriding anything and have no obvious overrides themselves. Mips edition 2014-04-29 07:58:02 +00:00
MipsDSPInstrFormats.td
MipsDSPInstrInfo.td
MipsDelaySlotFiller.cpp [mips][mips64r6] Replace m[tf]hi, m[tf]lo, mult, multu, dmult, dmultu, div, ddiv, divu, ddivu for MIPS32r6/MIPS64. 2014-06-12 10:44:10 +00:00
MipsFastISel.cpp Do Materialize Floating Point in Mips Fast-Isel 2014-06-10 16:45:44 +00:00
MipsFrameLowering.cpp
MipsFrameLowering.h [C++11] Add 'override' keywords and remove 'virtual'. Additionally add 'final' and leave 'virtual' on some methods that are marked virtual without overriding anything and have no obvious overrides themselves. Mips edition 2014-04-29 07:58:02 +00:00
MipsISelDAGToDAG.cpp [mips][mips64r6] [ls][dw][lr] are not available in MIPS32r6/MIPS64r6 2014-05-23 13:18:02 +00:00
MipsISelDAGToDAG.h [C++11] Add 'override' keywords and remove 'virtual'. Additionally add 'final' and leave 'virtual' on some methods that are marked virtual without overriding anything and have no obvious overrides themselves. Mips edition 2014-04-29 07:58:02 +00:00
MipsISelLowering.cpp [mips][mips64r6] c.cond.fmt, mov[fntz], and mov[fntz].[ds] are not available on MIPS32r6/MIPS64r6 2014-06-12 13:39:06 +00:00
MipsISelLowering.h [mips][mips64r6] c.cond.fmt, mov[fntz], and mov[fntz].[ds] are not available on MIPS32r6/MIPS64r6 2014-06-12 13:39:06 +00:00
MipsInstrFPU.td [mips] Add cache and pref instructions 2014-06-13 13:15:59 +00:00
MipsInstrFormats.td [mips] Add cache and pref instructions 2014-06-13 13:15:59 +00:00
MipsInstrInfo.cpp [C++] Use 'nullptr'. Target edition. 2014-04-25 05:30:21 +00:00
MipsInstrInfo.h [mips] Fix MipsLongBranch pass to work when the offset from the branch to the 2014-04-30 15:06:25 +00:00
MipsInstrInfo.td [mips] Add cache and pref instructions 2014-06-13 13:15:59 +00:00
MipsJITInfo.cpp [Modules] Fix potential ODR violations by sinking the DEBUG_TYPE 2014-04-22 02:41:26 +00:00
MipsJITInfo.h [C++11] Add 'override' keywords and remove 'virtual'. Additionally add 'final' and leave 'virtual' on some methods that are marked virtual without overriding anything and have no obvious overrides themselves. Mips edition 2014-04-29 07:58:02 +00:00
MipsLongBranch.cpp [mips][mips64r6] b(ge|lt)zal are not available on MIPS32r6/MIPS64r6 and bal is a normal instruction 2014-06-13 13:02:52 +00:00
MipsMCInstLower.cpp [mips] Optimize long branch for MIPS64 by removing %higher and %highest. 2014-05-27 18:53:06 +00:00
MipsMCInstLower.h [mips] Optimize long branch for MIPS64 by removing %higher and %highest. 2014-05-27 18:53:06 +00:00
MipsMSAInstrFormats.td
MipsMSAInstrInfo.td [mips][mips64r6] Add align and dalign 2014-05-15 12:06:36 +00:00
MipsMachineFunction.cpp Use range loop. 2014-05-07 14:53:32 +00:00
MipsMachineFunction.h [C++11] Add 'override' keywords and remove 'virtual'. Additionally add 'final' and leave 'virtual' on some methods that are marked virtual without overriding anything and have no obvious overrides themselves. Mips edition 2014-04-29 07:58:02 +00:00
MipsModuleISelDAGToDAG.cpp
MipsModuleISelDAGToDAG.h [C++11] Add 'override' keywords and remove 'virtual'. Additionally add 'final' and leave 'virtual' on some methods that are marked virtual without overriding anything and have no obvious overrides themselves. Mips edition 2014-04-29 07:58:02 +00:00
MipsOptimizePICCall.cpp [C++11] Add 'override' keywords and remove 'virtual'. Additionally add 'final' and leave 'virtual' on some methods that are marked virtual without overriding anything and have no obvious overrides themselves. Mips edition 2014-04-29 07:58:02 +00:00
MipsOs16.cpp [Modules] Fix potential ODR violations by sinking the DEBUG_TYPE 2014-04-22 02:41:26 +00:00
MipsOs16.h [C++11] Add 'override' keywords and remove 'virtual'. Additionally add 'final' and leave 'virtual' on some methods that are marked virtual without overriding anything and have no obvious overrides themselves. Mips edition 2014-04-29 07:58:02 +00:00
MipsRegisterInfo.cpp [Modules] Fix potential ODR violations by sinking the DEBUG_TYPE 2014-04-22 02:41:26 +00:00
MipsRegisterInfo.h [C++11] Add 'override' keywords and remove 'virtual'. Additionally add 'final' and leave 'virtual' on some methods that are marked virtual without overriding anything and have no obvious overrides themselves. Mips edition 2014-04-29 07:58:02 +00:00
MipsRegisterInfo.td [mips][mips64r6] c.cond.fmt, mov[fntz], and mov[fntz].[ds] are not available on MIPS32r6/MIPS64r6 2014-06-12 13:39:06 +00:00
MipsRelocations.h
MipsSEFrameLowering.cpp
MipsSEFrameLowering.h [C++11] Add 'override' keywords and remove 'virtual'. Additionally add 'final' and leave 'virtual' on some methods that are marked virtual without overriding anything and have no obvious overrides themselves. Mips edition 2014-04-29 07:58:02 +00:00
MipsSEISelDAGToDAG.cpp [C++] Use 'nullptr'. Target edition. 2014-04-25 05:30:21 +00:00
MipsSEISelDAGToDAG.h [C++11] Add 'override' keywords and remove 'virtual'. Additionally add 'final' and leave 'virtual' on some methods that are marked virtual without overriding anything and have no obvious overrides themselves. Mips edition 2014-04-29 07:58:02 +00:00
MipsSEISelLowering.cpp [mips][mips64r6] bc1[tf] are not available on MIPS32r6/MIPS64r6 2014-06-12 15:00:17 +00:00
MipsSEISelLowering.h [mips][msa] Fix vector insertions where the index is variable 2014-04-30 12:09:32 +00:00
MipsSEInstrInfo.cpp [mips] Use MTHC1 when it is available (MIPS32r2 and later) for both FP32 and FP64 2014-06-12 11:55:58 +00:00
MipsSEInstrInfo.h [C++11] Add 'override' keywords and remove 'virtual'. Additionally add 'final' and leave 'virtual' on some methods that are marked virtual without overriding anything and have no obvious overrides themselves. Mips edition 2014-04-29 07:58:02 +00:00
MipsSERegisterInfo.cpp [C++] Use 'nullptr'. Target edition. 2014-04-25 05:30:21 +00:00
MipsSERegisterInfo.h [C++11] Add 'override' keywords and remove 'virtual'. Additionally add 'final' and leave 'virtual' on some methods that are marked virtual without overriding anything and have no obvious overrides themselves. Mips edition 2014-04-29 07:58:02 +00:00
MipsSchedule.td
MipsSelectionDAGInfo.cpp Have TargetSelectionDAGInfo take a DataLayout initializer rather than 2014-06-06 19:04:48 +00:00
MipsSelectionDAGInfo.h
MipsSubtarget.cpp [mips] Marked up instructions added in MIPS32r2 and tested that IAS for -mcpu=mips(2|32) does not accept them 2014-05-13 11:45:36 +00:00
MipsSubtarget.h [mips] Use MTHC1 when it is available (MIPS32r2 and later) for both FP32 and FP64 2014-06-12 11:55:58 +00:00
MipsTargetMachine.cpp [C++11] Add 'override' keywords and remove 'virtual'. Additionally add 'final' and leave 'virtual' on some methods that are marked virtual without overriding anything and have no obvious overrides themselves. Mips edition 2014-04-29 07:58:02 +00:00
MipsTargetMachine.h [C++11] Add 'override' keywords and remove 'virtual'. Additionally add 'final' and leave 'virtual' on some methods that are marked virtual without overriding anything and have no obvious overrides themselves. Mips edition 2014-04-29 07:58:02 +00:00
MipsTargetObjectFile.cpp
MipsTargetObjectFile.h
MipsTargetStreamer.h [mips] Move expansion of .cpsetup to target streamer. 2014-05-01 10:24:46 +00:00