summaryrefslogtreecommitdiffstats
path: root/llvm/lib/Target/Mips/MipsAsmPrinter.cpp
Commit message (Collapse)AuthorAgeFilesLines
...
* Remove unused header files.Akira Hatanaka2012-03-091-2/+0
| | | | llvm-svn: 152447
* remove blanks, and some code formatJia Liu2012-02-281-9/+9
| | | | llvm-svn: 151625
* Add an option to use a virtual register as the global base register instead ofAkira Hatanaka2012-02-241-0/+12
| | | | | | | | | | | | | | | | | | | | | | | | | 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
* Remove dead code. Improve llvm_unreachable text. Simplify some control flow.Ahmed Charles2012-02-191-4/+1
| | | | llvm-svn: 150918
* remove Emacs-tag form .cpp files in Mips Backend, and fix some typo.Jia Liu2012-02-171-1/+1
| | | | llvm-svn: 150805
* add Emacs tag and fix some comment error in file headersJia Liu2012-02-171-1/+1
| | | | llvm-svn: 150775
* Cleanup Mips code and rename some variables. Patch by Jack CarterBruno Cardoso Lopes2011-12-301-5/+5
| | | | llvm-svn: 147383
* Detect unaligned loads/stores that have been added for Mips64 support.Akira Hatanaka2011-12-241-1/+8
| | | | llvm-svn: 147234
* Tidy up. Simplify logic. No functional change intended.Akira Hatanaka2011-12-191-1/+2
| | | | llvm-svn: 146896
* Expand .cprestore directive to multiple instructions if the offset does not fit Akira Hatanaka2011-12-131-9/+7
| | | | | | in a 16-bit field. llvm-svn: 146469
* Add bundle aware API for querying instruction properties and switch the codeEvan Cheng2011-12-071-2/+2
| | | | | | | | | | | | | | generator to it. For non-bundle instructions, these behave exactly the same as the MC layer API. For properties like mayLoad / mayStore, look into the bundle and if any of the bundled instructions has the property it would return true. For properties like isPredicable, only return true if *all* of the bundled instructions have the property. For properties like canFoldAsLoad, isCompare, conservatively return false for bundles. llvm-svn: 146026
* This patch makes the following changes necessary for MIPS' direct code emission.Akira Hatanaka2011-11-231-9/+16
| | | | | | | | - lower unaligned loads/stores. - encode the size operand of instructions INS and EXT. - emit relocation information needed for JAL (jump-and-link). llvm-svn: 145113
* Remove MipsMCSymbolRefExpr.Akira Hatanaka2011-11-151-1/+0
| | | | llvm-svn: 144654
* 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
* Properly handle Mips MC relocations and lower cpload and cprestore macros to ↵Bruno Cardoso Lopes2011-11-081-24/+62
| | | | | | | | MCInsts. Patch by Jack Carter. llvm-svn: 144139
* Replace (Lower|Upper)caseString in favor of StringRef's newest methods.Benjamin Kramer2011-11-061-5/+4
| | | | llvm-svn: 143891
* Fix function isUnalignedLoadStore.Akira Hatanaka2011-10-111-2/+4
| | | | llvm-svn: 141722
* Add patterns for unaligned load and store instructions and enable theAkira Hatanaka2011-10-081-23/+14
| | | | | | instruction selector to generate them. llvm-svn: 141471
* Add enums and functions for symbols Mips64 uses.Akira Hatanaka2011-09-221-0/+5
| | | | llvm-svn: 140295
* Add a base class for Mips TargetMachines and add Mips64 TargetMachines. Akira Hatanaka2011-09-211-0/+2
| | | | llvm-svn: 140233
* O64 will not be supported.Akira Hatanaka2011-09-091-1/+0
| | | | llvm-svn: 139421
* Drop support for Mips1 and Mips2.Akira Hatanaka2011-09-091-18/+0
| | | | llvm-svn: 139405
* Move TargetRegistry and TargetSelect from Target to Support where they belong.Evan Cheng2011-08-241-1/+1
| | | | | | These are strictly utilities for registering targets and components. llvm-svn: 138450
* Add support for half-word unaligned loads and stores.Akira Hatanaka2011-08-171-11/+22
| | | | llvm-svn: 137848
* Fix handling of double precision loads and stores when Mips1 is targeted. Akira Hatanaka2011-08-161-1/+20
| | | | | | | | | | | | | | | Mips1 does not support double precision loads or stores, therefore two single precision loads or stores must be used in place of these instructions. This patch treats double precision loads and stores as if they are legal instructions until MCInstLowering, instead of generating the single precision instructions during instruction selection or Prolog/Epilog code insertion. Without the changes made in this patch, llc produces code that has the same problem described in r137484 or bails out when MipsInstrInfo::storeRegToStackSlot or loadRegFromStackSlot is called before register allocation. llvm-svn: 137711
* Define unaligned load and store. Akira Hatanaka2011-08-121-0/+17
| | | | llvm-svn: 137515
* Separate MCInstPrinter registration from AsmPrinter registration.Evan Cheng2011-07-251-10/+0
| | | | llvm-svn: 135974
* Lower MachineInstr to MC Inst and print to .s files. Akira Hatanaka2011-07-071-9/+23
| | | | llvm-svn: 134661
* Rather than having printMemOperand change the way memory operands are printedAkira Hatanaka2011-07-071-11/+11
| | | | | | based on a modifier, split it into two functions. llvm-svn: 134637
* Change visibility of MipsAsmPrinter.Akira Hatanaka2011-07-071-60/+12
| | | | llvm-svn: 134630
* Reverse order of operands of address operand mem so that the base operand comesAkira Hatanaka2011-07-071-4/+4
| | | | | | | before the offset. This change will enable simplification of function MipsRegisterInfo::eliminateFrameIndex. llvm-svn: 134625
* Add missing return statement.Akira Hatanaka2011-07-071-1/+3
| | | | llvm-svn: 134622
* Improve Mips back-end's handling of DBG_VALUE. Akira Hatanaka2011-07-011-0/+24
| | | | llvm-svn: 134224
* Re-apply 132758 and 132768 which were speculatively reverted in 132777. Akira Hatanaka2011-06-211-0/+16
| | | | llvm-svn: 133494
* Speculatively revert 132758 and 132768 to try to fix the Windows buildbots.Eric Christopher2011-06-091-16/+0
| | | | llvm-svn: 132777
* Initial support for inline asm memory operand constraints.Akira Hatanaka2011-06-091-0/+16
| | | | llvm-svn: 132768
* This patch implements the thread local storage. Implemented are GeneralBruno Cardoso Lopes2011-05-311-0/+4
| | | | | | | | Dynamic, Initial Exec and Local Exec TLS models. Patch by Sasa Stankovic llvm-svn: 132322
* 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
* Fix MipsAsmPrinter::printSavedRegsBitmaskChange. Remove functions and variablesAkira Hatanaka2011-05-231-23/+39
| | | | | | in MipsFunctionInfo that are no longer used. llvm-svn: 131917
* Reverse unnecessary changes made in r129606 and r129608. There is no change ↵Akira Hatanaka2011-04-151-17/+15
| | | | | | in functionality. llvm-svn: 129612
* Fix lines that have incorrect indentation or exceed 80 columns. There is no ↵Akira Hatanaka2011-04-151-14/+17
| | | | | | change in functionality. llvm-svn: 129606
* Insert space before ';' to prevent warnings.Akira Hatanaka2011-04-021-1/+1
| | | | llvm-svn: 128750
* Simplifies logic for printing target flags.Akira Hatanaka2011-04-011-16/+3
| | | | llvm-svn: 128741
* Modifies MipsAsmPrinter::isBlockOnlyReachableByFallthrough so that it ↵Akira Hatanaka2011-04-011-1/+26
| | | | | | handles delay slots correctly. llvm-svn: 128724
* Lowers block address. Currently asserts when relocation model is not PIC. ↵Bruno Cardoso Lopes2011-03-041-0/+6
| | | | | | Patch by Akira Hatanaka llvm-svn: 127027
* Remove (hopefully) all trailing whitespaces from the mips backend. Patch by ↵Bruno Cardoso Lopes2011-03-041-31/+31
| | | | | | Hatanaka, Akira llvm-svn: 127003
* Rename TargetFrameInfo into TargetFrameLowering. Also, put couple of FIXMEs ↵Anton Korobeynikov2011-01-101-1/+3
| | | | | | and fixes here and there. llvm-svn: 123170
* Match a pattern generated by a dag combiner opt where:Bruno Cardoso Lopes2010-12-071-2/+6
| | | | | | | | (select (load (load tga0)) (load tga1)) => (load (select (load tga0) tga1)) Thanks to Akira for pointing that. llvm-svn: 121163
* Move hasFP() and few related hooks to TargetFrameInfo.Anton Korobeynikov2010-11-181-7/+8
| | | | llvm-svn: 119740
* move all the target's asmprinters into the main target. The piece Chris Lattner2010-11-141-0/+386
| | | | | | | that should be split out is the InstPrinter (if a target is mc'ized). This change makes all the targets be consistent. llvm-svn: 119056
OpenPOWER on IntegriCloud