llvm-6502/lib/Target/Mips
Evan Cheng ec52aaa12f Some ARM implementaions, e.g. A-series, does return stack prediction. That is,
the processor keeps a return addresses stack (RAS) which stores the address
and the instruction execution state of the instruction after a function-call
type branch instruction.

Calling a "noreturn" function with normal call instructions (e.g. bl) can
corrupt RAS and causes 100% return misprediction so LLVM should use a
unconditional branch instead. i.e.
mov lr, pc
b _foo
The "mov lr, pc" is issued in order to get proper backtrace.

rdar://8979299


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@151623 91177308-0d34-0410-b5e6-96231b3b80d8
2012-02-28 06:42:03 +00:00
..
AsmParser remove Emacs-tag form .cpp files in Mips Backend, and fix some typo. 2012-02-17 08:55:11 +00:00
InstPrinter 80 columns of Mips InstPrinter Makefile 2012-02-24 01:47:01 +00:00
MCTargetDesc comment fix 2012-02-24 02:17:26 +00:00
TargetInfo remove Emacs-tag form .cpp files in Mips Backend, and fix some typo. 2012-02-17 08:55:11 +00:00
CMakeLists.txt Target/Mips: Unbreak CMake build. 2012-01-25 03:15:46 +00:00
LLVMBuild.txt Add the skeleton of an asm parser for mips. 2012-01-11 03:56:41 +00:00
Makefile Add the skeleton of an asm parser for mips. 2012-01-11 03:56:41 +00:00
Mips64InstrInfo.td Add an option to use a virtual register as the global base register instead of 2012-02-24 22:34:47 +00:00
Mips.h
Mips.td Add definition of WSBH (Word Swap Bytes within Halfwords), which is an 2011-12-20 23:47:44 +00:00
MipsAnalyzeImmediate.cpp Use a function in MathExtras to do sign extension. 2012-02-22 00:16:54 +00:00
MipsAnalyzeImmediate.h add Emacs tag and fix some comment error in file headers 2012-02-17 01:23:50 +00:00
MipsAsmPrinter.cpp Add an option to use a virtual register as the global base register instead of 2012-02-24 22:34:47 +00:00
MipsAsmPrinter.h add Emacs tag and fix some comment error in file headers 2012-02-17 01:23:50 +00:00
MipsCallingConv.td Do not promote i32 arguments to i64. This was causing unnecessary sign extension 2012-02-17 02:20:26 +00:00
MipsCodeEmitter.cpp remove Emacs-tag form .cpp files in Mips Backend, and fix some typo. 2012-02-17 08:55:11 +00:00
MipsCondMov.td add Emacs tag and fix some comment error in file headers 2012-02-17 01:23:50 +00:00
MipsDelaySlotFiller.cpp remove Emacs-tag form .cpp files in Mips Backend, and fix some typo. 2012-02-17 08:55:11 +00:00
MipsEmitGPRestore.cpp Add an option to use a virtual register as the global base register instead of 2012-02-24 22:34:47 +00:00
MipsExpandPseudo.cpp Add an option to use a virtual register as the global base register instead of 2012-02-24 22:34:47 +00:00
MipsFrameLowering.cpp Add an option to use a virtual register as the global base register instead of 2012-02-24 22:34:47 +00:00
MipsFrameLowering.h Mips64 aligns stack on 16-byte boundary. 2011-09-22 02:53:37 +00:00
MipsInstrFormats.td Add support for floating point base register + offset register addressing mode 2012-02-28 02:55:02 +00:00
MipsInstrFPU.td Add support for floating point base register + offset register addressing mode 2012-02-28 02:55:02 +00:00
MipsInstrInfo.cpp Add an option to use a virtual register as the global base register instead of 2012-02-24 22:34:47 +00:00
MipsInstrInfo.h Add an option to use a virtual register as the global base register instead of 2012-02-24 22:34:47 +00:00
MipsInstrInfo.td Add comments. 2012-02-28 03:18:43 +00:00
MipsISelDAGToDAG.cpp Do not reserve $gp as a dedicated global base register if the target ABI is not O32. 2012-02-28 03:17:38 +00:00
MipsISelLowering.cpp Some ARM implementaions, e.g. A-series, does return stack prediction. That is, 2012-02-28 06:42:03 +00:00
MipsISelLowering.h Some ARM implementaions, e.g. A-series, does return stack prediction. That is, 2012-02-28 06:42:03 +00:00
MipsJITInfo.cpp remove Emacs-tag form .cpp files in Mips Backend, and fix some typo. 2012-02-17 08:55:11 +00:00
MipsJITInfo.h add Emacs tag and fix some comment error in file headers 2012-02-17 01:23:50 +00:00
MipsMachineFunction.cpp Add an option to use a virtual register as the global base register instead of 2012-02-24 22:34:47 +00:00
MipsMachineFunction.h Add an option to use a virtual register as the global base register instead of 2012-02-24 22:34:47 +00:00
MipsMCInstLower.cpp Add an option to use a virtual register as the global base register instead of 2012-02-24 22:34:47 +00:00
MipsMCInstLower.h Add an option to use a virtual register as the global base register instead of 2012-02-24 22:34:47 +00:00
MipsRegisterInfo.cpp Add an option to use a virtual register as the global base register instead of 2012-02-24 22:34:47 +00:00
MipsRegisterInfo.h
MipsRegisterInfo.td delete useless comment&blank 2012-02-27 02:21:34 +00:00
MipsRelocations.h Improve Mips JIT. 2011-12-30 21:04:30 +00:00
MipsSchedule.td
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
MipsSubtarget.cpp remove Emacs-tag form .cpp files in Mips Backend, and fix some typo. 2012-02-17 08:55:11 +00:00
MipsSubtarget.h Add support for floating point base register + offset register addressing mode 2012-02-28 02:55:02 +00:00
MipsTargetMachine.cpp Add an option to use a virtual register as the global base register instead of 2012-02-24 22:34:47 +00:00
MipsTargetMachine.h add Emacs tag and fix some comment error in file headers 2012-02-17 01:23:50 +00:00
MipsTargetObjectFile.cpp remove Emacs-tag form .cpp files in Mips Backend, and fix some typo. 2012-02-17 08:55:11 +00:00
MipsTargetObjectFile.h