llvm-6502/lib/Target/Mips
Jack Carter 9d577c8614 Implement methods that enable expansion of load immediate
macro instruction (li) in the assembler.

We have identified three possible expansions depending on 
the size of immediate operand:
  1) for 0 ≤ j ≤ 65535.
     li d,j =>
     ori d,$zero,j

  2) for −32768 ≤ j < 0.
     li d,j =>
     addiu d,$zero,j

  3) for any other value of j that is representable as a 32-bit integer.
     li d,j =>
     lui d,hi16(j)
     ori d,d,lo16(j)

All of the above have been implemented in ths patch.

Contributer: Vladimir Medic


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@165199 91177308-0d34-0410-b5e6-96231b3b80d8
2012-10-04 04:03:53 +00:00
..
AsmParser Implement methods that enable expansion of load immediate 2012-10-04 04:03:53 +00:00
Disassembler MIPS DSP: add functions which decode DSP and accumulator registers. 2012-09-27 02:01:10 +00:00
InstPrinter
MCTargetDesc This patch moves from using a hard coded number (4) 2012-10-03 21:58:54 +00:00
TargetInfo
CMakeLists.txt The mips 64bit instructions DSLL, DSRA, DSRL, DEXT and DINS get transformed by the assembler or through codegen direct object output to other variants based on the value of the immediate values of the operands. 2012-10-02 23:09:40 +00:00
LLVMBuild.txt
Makefile MIPS DSP: add code necessary for pseudo instruction lowering. 2012-09-27 01:59:07 +00:00
Mips16FrameLowering.cpp Mips16FrameLowering.cpp: Remove unused TII introduced in r164349. [-Wunused-variable] 2012-09-21 02:21:30 +00:00
Mips16FrameLowering.h Properly save and restore RA and Mips16 callee save registers S0,S1 2012-09-21 01:08:16 +00:00
Mips16InstrFormats.td
Mips16InstrInfo.cpp 1. Add load/store words from the stack 2012-09-28 02:26:24 +00:00
Mips16InstrInfo.h
Mips16InstrInfo.td 1. Add load/store words from the stack 2012-09-28 02:26:24 +00:00
Mips16RegisterInfo.cpp Delete member MipsFunctionInfo::OutArgFIRange and code that accesses it. 2012-09-26 19:18:19 +00:00
Mips16RegisterInfo.h
Mips64InstrInfo.td Remove aligned/unaligned load/store fragments defined in MipsInstrInfo.td and 2012-09-15 01:52:08 +00:00
Mips.h
Mips.td Add flags and feature bits for mips dsp. 2012-09-21 23:41:49 +00:00
MipsAnalyzeImmediate.cpp
MipsAnalyzeImmediate.h
MipsAsmPrinter.cpp The mips 64bit instructions DSLL, DSRA, DSRL, DEXT and DINS get transformed by the assembler or through codegen direct object output to other variants based on the value of the immediate values of the operands. 2012-10-02 23:09:40 +00:00
MipsAsmPrinter.h MIPS DSP: add code necessary for pseudo instruction lowering. 2012-09-27 01:59:07 +00:00
MipsCallingConv.td
MipsCodeEmitter.cpp Remove aligned/unaligned load/store fragments defined in MipsInstrInfo.td and 2012-09-15 01:52:08 +00:00
MipsCondMov.td
MipsDelaySlotFiller.cpp
MipsDSPInstrFormats.td MIPS DSP: other miscellaneous instructions. 2012-09-28 20:50:31 +00:00
MipsDSPInstrInfo.td MIPS DSP: other miscellaneous instructions. 2012-09-28 20:50:31 +00:00
MipsELFWriterInfo.cpp
MipsELFWriterInfo.h
MipsFrameLowering.cpp
MipsFrameLowering.h
MipsInstrFormats.td Implement methods that enable expansion of load immediate 2012-10-04 04:03:53 +00:00
MipsInstrFPU.td Remove aligned/unaligned load/store fragments defined in MipsInstrInfo.td and 2012-09-15 01:52:08 +00:00
MipsInstrInfo.cpp mips16: When copying operands in a conditional branch instruction, allow for 2012-09-13 17:12:37 +00:00
MipsInstrInfo.h
MipsInstrInfo.td Implement methods that enable expansion of load immediate 2012-10-04 04:03:53 +00:00
MipsISelDAGToDAG.cpp Remove aligned/unaligned load/store fragments defined in MipsInstrInfo.td and 2012-09-15 01:52:08 +00:00
MipsISelLowering.cpp MIPS DSP: Branch on Greater Than or Equal To Value 32 in DSPControl Pos Field instruction. 2012-09-27 02:15:57 +00:00
MipsISelLowering.h MIPS DSP: Branch on Greater Than or Equal To Value 32 in DSPControl Pos Field instruction. 2012-09-27 02:15:57 +00:00
MipsJITInfo.cpp
MipsJITInfo.h
MipsLongBranch.cpp
MipsMachineFunction.cpp
MipsMachineFunction.h Delete member MipsFunctionInfo::OutArgFIRange and code that accesses it. 2012-09-26 19:18:19 +00:00
MipsMCInstLower.cpp There are some Mips instructions that are lowered by the 2012-09-06 02:31:34 +00:00
MipsMCInstLower.h MIPS DSP: add code necessary for pseudo instruction lowering. 2012-09-27 01:59:07 +00:00
MipsRegisterInfo.cpp Add MIPS accumulator and DSP control registers. 2012-09-21 23:48:37 +00:00
MipsRegisterInfo.h
MipsRegisterInfo.td 1. Add load/store words from the stack 2012-09-28 02:26:24 +00:00
MipsRelocations.h
MipsSchedule.td
MipsSEFrameLowering.cpp
MipsSEFrameLowering.h
MipsSEInstrInfo.cpp
MipsSEInstrInfo.h
MipsSelectionDAGInfo.cpp
MipsSelectionDAGInfo.h
MipsSERegisterInfo.cpp Delete member MipsFunctionInfo::OutArgFIRange and code that accesses it. 2012-09-26 19:18:19 +00:00
MipsSERegisterInfo.h
MipsSubtarget.cpp Initialize boolean variables in MipsSubtarget's constructor. 2012-09-25 23:07:11 +00:00
MipsSubtarget.h Add flags and feature bits for mips dsp. 2012-09-21 23:41:49 +00:00
MipsTargetMachine.cpp
MipsTargetMachine.h
MipsTargetObjectFile.cpp Fix UseInitArray option for MIPS target. 2012-09-05 06:17:17 +00:00
MipsTargetObjectFile.h