llvm-project/llvm/lib/Target/Mips/MCTargetDesc
Daniel Sanders e8efff373a [mips] MIPS32R6 compact branch support
Summary:
MIPSR6 introduces a class of branches called compact branches. Unlike the
traditional MIPS branches which have a delay slot, compact branches do not
have a delay slot. The instruction following the compact branch is only
executed if the branch is not taken and must not be a branch.

It works by generating compact branches for MIPS32R6 when the delay slot
filler cannot fill a delay slot. Then, inspecting the generated code for
forbidden slot hazards (a compact branch with an adjacent branch or other
CTI) and inserting nops to clear this hazard.

Patch by Simon Dardis.

Reviewers: vkalintiris, dsanders

Subscribers: MatzeB, dsanders, llvm-commits

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

llvm-svn: 263444
2016-03-14 16:24:05 +00:00
..
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
MipsABIFlagsSection.cpp Revert r240137 (Fixed/added namespace ending comments using clang-tidy. NFC) 2015-06-23 09:49:53 +00:00
MipsABIFlagsSection.h Revert r240137 (Fixed/added namespace ending comments using clang-tidy. NFC) 2015-06-23 09:49:53 +00:00
MipsABIInfo.cpp [mips][mips16] MIPS16 is not a CPU/Architecture but is an ASE. 2015-10-15 14:34:23 +00:00
MipsABIInfo.h Remove 'const' from some ArrayRefs. ArrayRefs are already immutable. NFC 2015-09-28 00:15:34 +00:00
MipsAsmBackend.cpp [MC, COFF] Add .reloc support for WinCOFF 2016-01-19 23:05:27 +00:00
MipsAsmBackend.h [MC, COFF] Add .reloc support for WinCOFF 2016-01-19 23:05:27 +00:00
MipsBaseInfo.h [mips] MIPS32R6 compact branch support 2016-03-14 16:24:05 +00:00
MipsELFObjectWriter.cpp [mips] Implemented the .hword directive. 2016-02-15 16:11:51 +00:00
MipsELFStreamer.cpp Cleanup places that passed SMLoc by const reference to pass it by value instead. NFC 2015-09-20 23:35:59 +00:00
MipsELFStreamer.h Cleanup places that passed SMLoc by const reference to pass it by value instead. NFC 2015-09-20 23:35:59 +00:00
MipsFixupKinds.h Implement .reloc (constant offset only) with support for R_MIPS_NONE and R_MIPS_32. 2015-11-12 13:33:00 +00:00
MipsMCAsmInfo.cpp Revert r247692: Replace Triple with a new TargetTuple in MCTargetDesc/* and related. NFC. 2015-09-15 16:17:27 +00:00
MipsMCAsmInfo.h Revert r247692: Replace Triple with a new TargetTuple in MCTargetDesc/* and related. NFC. 2015-09-15 16:17:27 +00:00
MipsMCCodeEmitter.cpp [mips] Make isel select the correct DEXT variant up front. 2016-02-29 15:26:54 +00:00
MipsMCCodeEmitter.h [mips][microMIPS] Implement DERET and DI instructions and check size operand for EXT and DEXT* instructions 2015-12-21 13:08:58 +00:00
MipsMCExpr.cpp MC: Add target hook to control symbol quoting 2015-06-09 00:31:39 +00:00
MipsMCExpr.h Fix pr24486. 2015-10-05 12:07:05 +00:00
MipsMCNaCl.h Revert r240137 (Fixed/added namespace ending comments using clang-tidy. NFC) 2015-06-23 09:49:53 +00:00
MipsMCTargetDesc.cpp Revert r247692: Replace Triple with a new TargetTuple in MCTargetDesc/* and related. NFC. 2015-09-15 16:17:27 +00:00
MipsMCTargetDesc.h Revert r247692: Replace Triple with a new TargetTuple in MCTargetDesc/* and related. NFC. 2015-09-15 16:17:27 +00:00
MipsNaClELFStreamer.cpp Revert r240137 (Fixed/added namespace ending comments using clang-tidy. NFC) 2015-06-23 09:49:53 +00:00
MipsOptionRecord.cpp [mips] Add COP0 register class and use it in M[FT]C0/DM[FT]C0. 2015-06-27 15:39:19 +00:00
MipsTargetStreamer.cpp [mips] Removed the SHF_ALLOC flag and the SHT_REL flag from the .pdr section. 2016-02-17 11:15:16 +00:00