summaryrefslogtreecommitdiffstats
path: root/llvm/lib/Target/Mips/MipsFrameLowering.cpp
Commit message (Collapse)AuthorAgeFilesLines
* remove Emacs-tag form .cpp files in Mips Backend, and fix some typo.Jia Liu2012-02-171-1/+1
| | | | llvm-svn: 150805
* Mark 64-bit register RA_64 unused too.Akira Hatanaka2012-01-251-4/+5
| | | | llvm-svn: 148918
* Modify MipsFrameLowering::emitPrologue and emitEpilogue.Akira Hatanaka2012-01-251-78/+68
| | | | | | | | | | | - Use MipsAnalyzeImmediate to expand immediates that do not fit in 16-bit. - Change the types of variables so that they are sufficiently large to handle 64-bit pointers. - Emit instructions to set register $28 in a function prologue after instructions which store callee-saved registers have been emitted. llvm-svn: 148917
* Move global variables in TargetMachine into new TargetOptions class. As an APINick Lewycky2011-12-021-2/+2
| | | | | | | | | | | | change, now you need a TargetOptions object to create a TargetMachine. Clang patch to follow. One small functionality change in PTX. PTX had commented out the machine verifier parts in their copy of printAndVerify. That now calls the version in LLVMTargetMachine. Users of PTX who need verification disabled should rely on not passing the command-line flag to enable it. llvm-svn: 145714
* Fix functions in MipsFrameLowering.cpp and MipsRegisterInfo.cpp. Use 64-bitAkira Hatanaka2011-11-151-16/+20
| | | | | | registers and instructions when ABI is N64. llvm-svn: 144666
* Set nomacro before emitting the sequence of instructions that set global pointerAkira Hatanaka2011-11-151-3/+2
| | | | | | register. llvm-svn: 144665
* Remove variable that keeps the size of area used to save byval or variableAkira Hatanaka2011-11-141-1/+0
| | | | | | | | | | | argument registers on the callee's stack frame, along with functions that set and get it. It is not necessary to add the size of this area when computing stack size in emitPrologue, since it has already been accounted for in PEI::calculateFrameObjectOffsets. llvm-svn: 144549
* Mips MC object code emission improvements:Bruno Cardoso Lopes2011-11-111-0/+1
| | | | | | | | | | "With this patch we can now generate runnable Mips code through LLVM direct object emission. We have run numerous simple programs, both C and C++ and with -O0 and -O3 from the output. The code is not production ready, but quite useful for experimentation." Patch and message by Jack Carter llvm-svn: 144414
* Emit Mips64's sequence of instructions that set global register in prologue.Akira Hatanaka2011-11-111-1/+21
| | | | llvm-svn: 144367
* Include RegSaveAreaSize in the computation of stack size.Akira Hatanaka2011-11-071-0/+1
| | | | llvm-svn: 143993
* Enclose directive .cprestore with .set macro and nomacro to silence assemblerAkira Hatanaka2011-08-111-3/+9
| | | | | | warning. llvm-svn: 137378
* Move getInitialFrameState from TargetFrameInfo to MCAsmInfo (suggestions forEvan Cheng2011-07-181-7/+0
| | | | | | better location welcome). llvm-svn: 135438
* Coding style fixes.Akira Hatanaka2011-06-071-3/+4
| | | | | | | | | - Fix indentation. - Move comments. - Fit lines in 80 columns. - Remove dead code. llvm-svn: 132724
* Add test case for C++ exception handling and fix the following mistakes in ↵Akira Hatanaka2011-06-071-30/+60
| | | | | | | | | | | | | | | | | | MipsFrameLowering::emitPrologue: - cfi directives are not inserted at the right location or in the right order. - The source MachineLocation for the cfi directive that changes the cfa register to $fp should be MachineLocation::VirtualFP. - A PROLOG_LABEL that marks the beginning of cfi_offset directives for callee-saved register is emitted even when no callee-saved registers are saved. - When a callee-saved double precision register is saved, two cfi_offset directives, one for each of the paired single precision registers, should be emitted. llvm-svn: 132703
* Custom-lower FRAMEADDR. Patch by Sasa Stankovic.Akira Hatanaka2011-06-021-1/+2
| | | | llvm-svn: 132444
* Use MachineFrameInfo::hasCalls instead of MipsFunctionInfo::hasCall to check ifAkira Hatanaka2011-05-261-2/+1
| | | | | | a function has any function calls. llvm-svn: 132140
* Add support for C++ exception handling.Akira Hatanaka2011-05-261-8/+40
| | | | llvm-svn: 132131
* Change initial value of MaxCallFrameSize. MipsFI::getMaxCallFrameSize() shouldAkira Hatanaka2011-05-251-1/+1
| | | | | | return 0 if there are no function calls made. llvm-svn: 132065
* Enable printing of immediates that do not fit in 16-bit. .cprestore can haveAkira Hatanaka2011-05-241-1/+1
| | | | | | offsets that are larger than 0x10000. llvm-svn: 132003
* Change StackDirection from StackGrowsUp to StackGrowsDown.Akira Hatanaka2011-05-231-108/+18
| | | | | | | | | | | | | | | | The following improvements are accomplished as a result of applying this patch: - Fixed frame objects' offsets (relative to either the virtual frame pointer or the stack pointer) are set before instruction selection is completed. There is no need to wait until Prologue/Epilogue Insertion is run to set them. - Calculation of final offsets of fixed frame objects is straightforward. It is no longer necessary to assign negative offsets to fixed objects for incoming arguments in order to distinguish them from the others. - Since a fixed object has its relative offset set during instruction selection, there is no need to conservatively set its alignment to 4. - It is no longer necessary to reorder non-fixed frame objects in MipsFrameLowering::adjustMipsStackFrame. llvm-svn: 131915
* Insert instructions that copy $sp to or from $fp at the right locations. Akira Hatanaka2011-05-211-11/+26
| | | | llvm-svn: 131784
* Make $fp and $ra callee-saved registers and let PrologEpilogInserter handleAkira Hatanaka2011-05-201-82/+28
| | | | | | saving and restoring them. llvm-svn: 131745
* Reverse unnecessary changes made in r129606 and r129608. There is no change ↵Akira Hatanaka2011-04-151-8/+9
| | | | | | in functionality. llvm-svn: 129612
* Fix lines that have incorrect indentation or exceed 80 columns. There is no ↵Akira Hatanaka2011-04-151-13/+15
| | | | | | change in functionality. llvm-svn: 129606
* Fix a ton of comment typos found by codespell. Patch byChris Lattner2011-04-151-2/+2
| | | | | | Luis Felipe Strano Moraes! llvm-svn: 129558
* Fix indentation.Akira Hatanaka2011-04-071-2/+2
| | | | llvm-svn: 129105
* Update ATUsed every time after expandRegLargeImmPair is called.Akira Hatanaka2011-04-071-4/+8
| | | | llvm-svn: 129104
* Initialize variable.Bill Wendling2011-03-041-1/+1
| | | | llvm-svn: 127038
* Expands register/immediate pairs when the immediate is too large to fit in ↵Bruno Cardoso Lopes2011-03-041-6/+82
| | | | | | 16-bit field. Patch by Akira Hatanaka llvm-svn: 127032
* Ensure Mips::GP is properly reloaded after a function call. Patch by Sasa ↵Bruno Cardoso Lopes2011-01-181-0/+7
| | | | | | Stankovic llvm-svn: 123768
* Teach frame lowering to ignore debug values after the terminators.Jakob Stoklund Olesen2011-01-131-1/+1
| | | | llvm-svn: 123399
* Rename TargetFrameInfo into TargetFrameLowering. Also, put couple of FIXMEs ↵Anton Korobeynikov2011-01-101-0/+307
and fixes here and there. llvm-svn: 123170
OpenPOWER on IntegriCloud