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
MCTargetDesc [mips] First patch which adds support for micromips. 2013-04-19 19:03:11 +00:00
TargetInfo
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
Makefile
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
Mips16FrameLowering.h [mips] Add parameter Alignment to MipsFrameLowering's constructor. 2013-03-29 01:51:04 +00:00
Mips16InstrFormats.td
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
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
Mips.td
MipsAnalyzeImmediate.cpp
MipsAnalyzeImmediate.h
MipsAsmPrinter.cpp Mips specific inline asm operand modifier 'D' 2013-04-09 23:19:50 +00:00
MipsAsmPrinter.h
MipsCallingConv.td
MipsCodeEmitter.cpp [mips] Clean up MipsISelDAGToDAG.cpp and MipsISelLowering.cpp. 2013-04-11 19:07:14 +00:00
MipsCondMov.td
MipsConstantIslandPass.cpp This patch enables llvm to switch between compiling for mips32/mips64 2013-04-09 19:46:01 +00:00
MipsDelaySlotFiller.cpp
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
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
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
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
MipsJITInfo.h
MipsLongBranch.cpp This patch enables llvm to switch between compiling for mips32/mips64 2013-04-09 19:46:01 +00:00
MipsMachineFunction.cpp
MipsMachineFunction.h
MipsMCInstLower.cpp
MipsMCInstLower.h
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
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
MipsSchedule.td
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
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
MipsTargetObjectFile.h