summaryrefslogtreecommitdiffstats
path: root/llvm/test/CodeGen/Mips/global-pointer-reg.ll
Commit message (Collapse)AuthorAgeFilesLines
* Make the following changes in MipsAsmPrinter.cpp:Akira Hatanaka2012-05-121-1/+3
| | | | | | | | | - Remove code which lowers pseudo SETGP01. - Fix LowerSETGP01. The first two of the three instructions that are emitted to initialize the global pointer register now use register $2. - Stop emitting .cpload directive. llvm-svn: 156689
* Add an option to use a virtual register as the global base register instead ofAkira Hatanaka2012-02-241-0/+22
reserving a physical register ($gp or $28) for that purpose. This will completely eliminate loads that restore the value of $gp after every function call, if the register allocator assigns a callee-saved register, or eliminate unnecessary loads if it assigns a temporary register. example: .cpload $25 // set $gp. ... .cprestore 16 // store $gp to stack slot 16($sp). ... jalr $25 // function call. clobbers $gp. lw $gp, 16($sp) // not emitted if callee-saved reg is chosen. ... lw $2, 4($gp) ... jalr $25 // function call. lw $gp, 16($sp) // not emitted if $gp is not live after this instruction. ... llvm-svn: 151402
OpenPOWER on IntegriCloud