llvm-6502/lib/Target/Mips
Jack Carter 97265a4889 Mips assembler: .set reorder support
Mips have delayslots for certain instructions 
like jumps and branches. These are instructions 
that follow the branch or jump and are executed
before the jump or branch is completed.

Early Mips compilers could not cope with delayslots
and left them up to the assembler. The assembler would
fill the delayslots with the appropriate instruction,
usually just a nop to allow correct runtime behavior.

The default behavior for this is set with .set reorder.
To tell the assembler that you don't want it to mess with
the delayslot one used .set noreorder.

For backwards compatibility we need to support
.set reorder and have it be the default behavior in the 
assembler.

Our support for it is to insert a NOP directly after an
instruction with a delayslot when in .set reorder mode.

Contributer: Vladimir Medic


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@180584 91177308-0d34-0410-b5e6-96231b3b80d8
2013-04-25 23:31:35 +00:00
..
AsmParser Mips assembler: .set reorder support 2013-04-25 23:31:35 +00:00
Disassembler [mips] DSP-ASE move from HI/LO register instructions. 2013-04-18 00:52:44 +00:00
InstPrinter This patch that sets the EmitAlias flag in td files 2013-02-05 08:32:10 +00:00
MCTargetDesc [mips] First patch which adds support for micromips. 2013-04-19 19:03:11 +00:00
TargetInfo Move all of the header files which are involved in modelling the LLVM IR 2013-01-02 11:36:10 +00:00
CMakeLists.txt This is for an experimental option -mips-os16. The idea is to compile all 2013-04-10 16:58:04 +00:00
LLVMBuild.txt Add disassembler to MIPS. 2012-04-17 18:03:21 +00:00
Makefile Remove edis - the enhanced disassembler. Fixes PR14654. 2012-12-19 19:55:47 +00:00
MicroMipsInstrFormats.td [mips] Add definitions of micromips load and store instructions. 2013-04-25 01:21:25 +00:00
MicroMipsInstrInfo.td [mips] Add definitions of micromips load and store instructions. 2013-04-25 01:21:25 +00:00
Mips16FrameLowering.cpp Move the eliminateCallFramePseudoInstr method from TargetRegisterInfo 2013-02-21 20:05:00 +00:00
Mips16FrameLowering.h [mips] Add parameter Alignment to MipsFrameLowering's constructor. 2013-03-29 01:51:04 +00:00
Mips16InstrFormats.td Remove the form field from Mips16 instruction formats and set things 2013-02-14 03:05:25 +00:00
Mips16InstrInfo.cpp [mips] Define overloaded versions of storeRegToStack and loadRegFromStack. 2013-03-29 02:14:12 +00:00
Mips16InstrInfo.h [mips] Define overloaded versions of storeRegToStack and loadRegFromStack. 2013-03-29 02:14:12 +00:00
Mips16InstrInfo.td [mips] Fix definitions of multiply, multiply-add/sub and divide instructions. 2013-03-30 01:36:35 +00:00
Mips16ISelDAGToDAG.cpp ArrayRefize getMachineNode(). No functionality change. 2013-04-19 22:22:57 +00:00
Mips16ISelDAGToDAG.h This patch enables llvm to switch between compiling for mips32/mips64 2013-04-09 19:46:01 +00:00
Mips16ISelLowering.cpp 80 columns. 2013-04-22 20:13:37 +00:00
Mips16ISelLowering.h [mips] Define two subclasses of MipsTargetLowering. Mips16TargetLowering is for 2013-03-13 00:54:29 +00:00
Mips16RegisterInfo.cpp [mips] Define a function which returns the GPR register class. 2013-03-29 19:17:42 +00:00
Mips16RegisterInfo.h [mips] Define a function which returns the GPR register class. 2013-03-29 19:17:42 +00:00
Mips64InstrInfo.td [mips] Fix definitions of multiply, multiply-add/sub and divide instructions. 2013-03-30 01:36:35 +00:00
Mips.h Add the skeleton for the Mips constant island pass. 2013-02-27 03:33:58 +00:00
Mips.td [mips] Remove android calling convention. 2013-03-05 23:22:30 +00:00
MipsAnalyzeImmediate.cpp Fix integer undefined behavior due to signed left shift overflow in LLVM. 2012-08-24 23:29:28 +00:00
MipsAnalyzeImmediate.h Fix undefined behavior in the Mips backend. 2012-03-09 06:36:45 +00:00
MipsAsmPrinter.cpp Mips specific inline asm operand modifier 'D' 2013-04-09 23:19:50 +00:00
MipsAsmPrinter.h This is a resubmittal. For some reason it broke the bots yesterday 2013-01-18 21:20:38 +00:00
MipsCallingConv.td [mips] Remove android calling convention. 2013-03-05 23:22:30 +00:00
MipsCodeEmitter.cpp [mips] Clean up MipsISelDAGToDAG.cpp and MipsISelLowering.cpp. 2013-04-11 19:07:14 +00:00
MipsCondMov.td [mips] Fix inefficient code generation. 2013-03-01 21:52:08 +00:00
MipsConstantIslandPass.cpp This patch enables llvm to switch between compiling for mips32/mips64 2013-04-09 19:46:01 +00:00
MipsDelaySlotFiller.cpp Fix comment. 2013-03-25 20:11:16 +00:00
MipsDSPInstrFormats.td [mips] DSP-ASE move from HI/LO register instructions. 2013-04-18 00:52:44 +00:00
MipsDSPInstrInfo.td [mips] In performDSPShiftCombine, check that all elements in the vector are 2013-04-22 19:58:23 +00:00
MipsFrameLowering.cpp Move all of the header files which are involved in modelling the LLVM IR 2013-01-02 11:36:10 +00:00
MipsFrameLowering.h [mips] Add parameter Alignment to MipsFrameLowering's constructor. 2013-03-29 01:51:04 +00:00
MipsInstrFormats.td [mips] Add definitions of micromips load and store instructions. 2013-04-25 01:21:25 +00:00
MipsInstrFPU.td [mips] Define reg+imm load/store pattern templates. 2013-03-30 02:01:48 +00:00
MipsInstrInfo.cpp [mips] Do not add SecondLastInst to list BranchInstrs if there is only one 2013-03-01 01:22:26 +00:00
MipsInstrInfo.h [mips] Define overloaded versions of storeRegToStack and loadRegFromStack. 2013-03-29 02:14:12 +00:00
MipsInstrInfo.td [mips] Add definitions of micromips load and store instructions. 2013-04-25 01:21:25 +00:00
MipsISelDAGToDAG.cpp [mips] Clean up MipsISelDAGToDAG.cpp and MipsISelLowering.cpp. 2013-04-11 19:07:14 +00:00
MipsISelDAGToDAG.h [mips] Rename functions and variables to start with proper case. 2013-03-14 18:33:23 +00:00
MipsISelLowering.cpp Remove unused MEMBARRIER DAG node; it's been replaced by ATOMIC_FENCE. 2013-04-20 12:32:17 +00:00
MipsISelLowering.h Remove unused MEMBARRIER DAG node; it's been replaced by ATOMIC_FENCE. 2013-04-20 12:32:17 +00:00
MipsJITInfo.cpp Move all of the header files which are involved in modelling the LLVM IR 2013-01-02 11:36:10 +00:00
MipsJITInfo.h Classic JIT is still being supported by MIPS, along with MCJIT. 2012-12-03 23:11:12 +00:00
MipsLongBranch.cpp This patch enables llvm to switch between compiling for mips32/mips64 2013-04-09 19:46:01 +00:00
MipsMachineFunction.cpp [mips] Lower EH_RETURN. 2013-01-30 00:26:49 +00:00
MipsMachineFunction.h [mips] Lower EH_RETURN. 2013-01-30 00:26:49 +00:00
MipsMCInstLower.cpp Use the new script to sort the includes of every file under lib. 2012-12-03 16:50:05 +00:00
MipsMCInstLower.h MIPS DSP: add code necessary for pseudo instruction lowering. 2012-09-27 01:59:07 +00:00
MipsModuleISelDAGToDAG.cpp This patch enables llvm to switch between compiling for mips32/mips64 2013-04-09 19:46:01 +00:00
MipsModuleISelDAGToDAG.h This patch enables llvm to switch between compiling for mips32/mips64 2013-04-09 19:46:01 +00:00
MipsOs16.cpp 80 columns. 2013-04-22 20:13:37 +00:00
MipsOs16.h This is for an experimental option -mips-os16. The idea is to compile all 2013-04-10 16:58:04 +00:00
MipsRegisterInfo.cpp [PEI] Pass the frame index operand number to the eliminateFrameIndex function. 2013-01-31 20:02:54 +00:00
MipsRegisterInfo.h [mips] Define a function which returns the GPR register class. 2013-03-29 19:17:42 +00:00
MipsRegisterInfo.td [mips] DSP-ASE move from HI/LO register instructions. 2013-04-18 00:52:44 +00:00
MipsRelocations.h remove blanks, and some code format 2012-02-28 07:46:26 +00:00
MipsSchedule.td remove blanks, and some code format 2012-02-28 07:46:26 +00:00
MipsSEFrameLowering.cpp [mips] Expand pseudo load, store and copy instructions right before 2013-03-30 01:04:11 +00:00
MipsSEFrameLowering.h [mips] Add parameter Alignment to MipsFrameLowering's constructor. 2013-03-29 01:51:04 +00:00
MipsSEInstrInfo.cpp [mips] Small update to the implementation of eh.return for Mips. 2013-04-02 23:02:07 +00:00
MipsSEInstrInfo.h [mips] Define overloaded versions of storeRegToStack and loadRegFromStack. 2013-03-29 02:14:12 +00:00
MipsSEISelDAGToDAG.cpp ArrayRefize getMachineNode(). No functionality change. 2013-04-19 22:22:57 +00:00
MipsSEISelDAGToDAG.h This patch enables llvm to switch between compiling for mips32/mips64 2013-04-09 19:46:01 +00:00
MipsSEISelLowering.cpp [mips] Compare splat value with element size instead of calling isUIntN. 2013-04-23 18:09:42 +00:00
MipsSEISelLowering.h [mips] Move MipsTargetLowering::lowerINTRINSIC_W_CHAIN and 2013-04-13 02:13:30 +00:00
MipsSelectionDAGInfo.cpp remove Emacs-tag form .cpp files in Mips Backend, and fix some typo. 2012-02-17 08:55:11 +00:00
MipsSelectionDAGInfo.h
MipsSERegisterInfo.cpp [mips] Define a function which returns the GPR register class. 2013-03-29 19:17:42 +00:00
MipsSERegisterInfo.h [mips] Define a function which returns the GPR register class. 2013-03-29 19:17:42 +00:00
MipsSubtarget.cpp This is for an experimental option -mips-os16. The idea is to compile all 2013-04-10 16:58:04 +00:00
MipsSubtarget.h This is for an experimental option -mips-os16. The idea is to compile all 2013-04-10 16:58:04 +00:00
MipsTargetMachine.cpp This is for an experimental option -mips-os16. The idea is to compile all 2013-04-10 16:58:04 +00:00
MipsTargetMachine.h This patch enables llvm to switch between compiling for mips32/mips64 2013-04-09 19:46:01 +00:00
MipsTargetObjectFile.cpp This is a resubmittal. For some reason it broke the bots yesterday 2013-01-18 21:20:38 +00:00
MipsTargetObjectFile.h This is a resubmittal. For some reason it broke the bots yesterday 2013-01-18 21:20:38 +00:00