summaryrefslogtreecommitdiffstats
path: root/llvm/lib/Target/Sparc/EmitAssembly.cpp
Commit message (Collapse)AuthorAgeFilesLines
* Add # of printed instructions statistic to both the SPARC and X86 LLC backends.Brian Gaeke2003-10-061-1/+4
| | | | llvm-svn: 8892
* Fix spelling.Misha Brukman2003-09-231-1/+1
| | | | llvm-svn: 8686
* Spell `necessary' correctly.Misha Brukman2003-08-181-3/+3
| | | | llvm-svn: 7944
* * Removed `using' declaration, now use full namespace qualifier std::stringMisha Brukman2003-08-051-43/+43
| | | | | | * Simplified code by using an inline function instead of copy-pasted code llvm-svn: 7597
* Add all arithmetic operators to ConstantExprToString().Vikram S. Adve2003-08-011-0/+40
| | | | | | | | Note that some generated operators (like &, | or ^) may not be supported by the assembler -- but if they've got this far, it's better to generate them and let the assembler decide. llvm-svn: 7476
* When emitting a constant, check for ConstantExpr beforeVikram S. Adve2003-07-301-14/+15
| | | | | | ordinary (primitive) types since ConstantExprs may be of primitive type! llvm-svn: 7418
* Bug fix: don't unnecessarily pretty-print control-characters, some ofVikram S. Adve2003-07-291-15/+4
| | | | | | which were wrong (particularly, '\a' for '\007'). llvm-svn: 7393
* Remove redundant const qualifiers from cast<> expressionsChris Lattner2003-07-231-1/+1
| | | | llvm-svn: 7253
* Simplify code by using ConstantInt::getRawValue instead of checking to seeChris Lattner2003-07-231-3/+1
| | | | | | whether the constant is signed or unsigned, then casting llvm-svn: 7252
* The word `separate' only has one `e'.Misha Brukman2003-07-141-1/+1
| | | | llvm-svn: 7173
* Several fixes to handling of int CC register:Vikram S. Adve2003-07-101-17/+2
| | | | | | | | | | | | | | | | | | | | (1) An int CC live range must be spilled if there are any interferences, even if no other "neighbour" in the interf. graph has been allocated that reg. yet. This is actually true of any class with only one reg! (2) SparcIntCCRegClass::colorIGNode sets the color even if the LR must be spilled so that the machine-independent spill code doesn't have to make the machine-dependent decision of which CC name to use based on operand type: %xcc or %icc. (These are two halves of the same register.) (3) LR->isMarkedForSpill() is no longer the same as LR->hasColor(). These should never have been the same, and this is necessary now for #2. (4) All RDCCR and WRCCR instructions are directly generated with the phony number for %ccr so that EmitAssembly/EmitBinary doesn't have to deal with this. llvm-svn: 7151
* Major bug fix though it happened rarely (only on a compare after anVikram S. Adve2003-07-061-2/+17
| | | | | | | | integer overflow): We need to use %icc and not %xcc for comparisons on 32-bit or smaller integer values. llvm-svn: 7111
* Reverting previous beautification changes.Vikram S. Adve2003-05-311-154/+175
| | | | llvm-svn: 6464
* Code beautification, no functional changes.Misha Brukman2003-05-311-175/+154
| | | | llvm-svn: 6459
* Added 'r' or 'i' annotations to instructions, as SparcInstr.def has changed.Misha Brukman2003-05-271-3/+6
| | | | llvm-svn: 6373
* Added special register class containing (for now) %fsr.Vikram S. Adve2003-05-271-13/+13
| | | | | | | | Fixed spilling of %fcc[0-3] which are part of %fsr. Moved some machine-independent reg-class code to class TargetRegInfo from SparcReg{Class,}Info. llvm-svn: 6339
* Bug fix: padding bytes within a structure should go after each field!Vikram S. Adve2003-05-251-5/+5
| | | | llvm-svn: 6333
* Sparc instruction opcodes now all live under the `V9' namespace.Misha Brukman2003-05-201-4/+6
| | | | llvm-svn: 6249
* * Don't access TargetData directlyChris Lattner2002-12-281-8/+10
| | | | | | * Changes because frame info is not in MachineFunction directly anymore llvm-svn: 5171
* Fix misleading indentationChris Lattner2002-11-171-3/+2
| | | | llvm-svn: 4730
* Remove a nasty little semi-colon someone introduced whichVikram S. Adve2002-11-061-1/+1
| | | | | | prevented any machine instrs from being printed! llvm-svn: 4557
* In getID(), don't call getValidSymbolName to mangle external names!Vikram S. Adve2002-10-301-4/+7
| | | | llvm-svn: 4451
* *** empty log message ***Chris Lattner2002-10-291-2/+2
| | | | llvm-svn: 4390
* Rewrote uses of deprecated `MachineFunction::get(BasicBlock *BB)'.Misha Brukman2002-10-281-9/+7
| | | | llvm-svn: 4352
* Rename the redundant MachineOperand::getOperandType() to ↵Chris Lattner2002-10-281-1/+1
| | | | | | MachineOperand::getType() llvm-svn: 4331
* *** empty log message ***Chris Lattner2002-10-281-1/+0
| | | | llvm-svn: 4323
* Rename MachineCodeForBasicBlock to MachineBasicBlockChris Lattner2002-10-281-4/+4
| | | | llvm-svn: 4318
* Changed `MachineCodeForMethod' to `MachineFunction'.Misha Brukman2002-10-281-2/+2
| | | | llvm-svn: 4301
* Make sure to escape \'s when they are outputChris Lattner2002-10-151-0/+2
| | | | llvm-svn: 4179
* Allow emission of names that start with an underscore. This is needed toChris Lattner2002-10-141-14/+10
| | | | | | | | | interface with code that uses symbols in the ansi-c protected namespace. In most cases this comes from system header files, such as stdio.h. In particular, without this change, a reference to the __iob symbol is mangled into ll_iob, which is not resolved by libc. llvm-svn: 4165
* Several major fixes, particularly in emitting constant aggregates:Vikram S. Adve2002-10-131-59/+104
| | | | | | | | | | | | (1) Padding bytes between structure fields (for alignment) were never being emitted into the constant pool so the layout did not match! (2) In printing constants, structures containing structures or arrays were never handled. (3) Support new model for external/uninitialized/initialized globals. Uninitialized globals are no longer emitted since they are external. Initialized globals may go either in .bss or in .data. llvm-svn: 4134
* Don't print out global names unnecesssarily. Also, expose passVikram S. Adve2002-09-161-3/+4
| | | | | | constructors so passes can be inserted by TargetMachine.cpp. llvm-svn: 3742
* Again, including Module makes Function unnecessary.Misha Brukman2002-09-141-2/+0
| | | | llvm-svn: 3714
* -- Bug fix: use byte offsets not typed offsets in output assembly!Vikram S. Adve2002-09-051-19/+24
| | | | | | | -- Add support for ConstantExpr constants (only cast and add operators so far) -- Avoid generating label Bbss.bss, which sometimes came out twice. llvm-svn: 3578
* Change code to not use the copyOperands method added to User. It's nowChris Lattner2002-08-221-7/+9
| | | | | | more efficient to boot. llvm-svn: 3453
* Add AsmPrinter::ConstantExprToString, which writes out a ConstantExprVikram S. Adve2002-08-221-1/+74
| | | | | | as an expression. llvm-svn: 3442
* This case JUST handles constantpointer nulls, not all pointers.Chris Lattner2002-08-201-3/+1
| | | | llvm-svn: 3402
* Merge three loops into one.Chris Lattner2002-08-071-23/+18
| | | | llvm-svn: 3259
* *** empty log message ***Chris Lattner2002-07-241-6/+6
| | | | llvm-svn: 3056
* * Make global variables with external linkage get emitted correctlyChris Lattner2002-07-161-13/+14
| | | | | | | * Do NOT add a prefix to global variables that are external * Add newline after emitting a constpointerref llvm-svn: 2925
* Add support to print %hh, %hm, %lm, or %lo in an operand field.Vikram S. Adve2002-07-101-14/+30
| | | | llvm-svn: 2857
* Added support for printing constant global references toVikram S. Adve2002-07-091-4/+10
| | | | | | assembly. llvm-svn: 2842
* BA no longer has the unused CC operand.Vikram S. Adve2002-07-081-2/+3
| | | | llvm-svn: 2837
* MEGAPATCH checkin.Chris Lattner2002-06-251-32/+32
| | | | | | For details, See: docs/2002-06-25-MegaPatchInfo.txt llvm-svn: 2778
* Fix Constness problemsChris Lattner2002-06-051-13/+13
| | | | llvm-svn: 2761
* Numerous bug fixes:Vikram S. Adve2002-05-191-8/+13
| | | | | | | | | | | | | | | | | | | | | | | | -- correct sign extensions for integer casts and for shift-by-constant instructions generated for integer multiply -- passing FP arguments to functions with more than 6 arguments -- passing FP arguments to varargs functions -- passing FP arguments to functions with no prototypes -- incorrect stack frame size when padding a section -- folding getelementptr operations with mixed array and struct indexes -- use uint64_t instead of uint for constant offsets in mem operands -- incorrect coloring for CC registers (both int and FP): interferences were being completely ignored for int CC and were considered but no spills were marked for fp CC! Also some code improvements: -- better interface to generating machine instr for common cases (many places still need to be updated to use this interface) -- annotations on MachineInstr to communicate information from one codegen phase to another (now used to pass information about CALL/JMPLCALL operands from selection to register allocation) -- all sizes and offests in class TargetData are uint64_t instead of uint llvm-svn: 2640
* Eliminate duplicate or unneccesary #include'sChris Lattner2002-04-291-2/+0
| | | | llvm-svn: 2397
* Add new optional getPassName() virtual function that a Pass can overrideChris Lattner2002-04-291-0/+6
| | | | | | to make debugging output a lot nicer. llvm-svn: 2395
* Tighten up the AnalysisUsage of lots of passes, primarily to correctly ↵Chris Lattner2002-04-281-1/+9
| | | | | | indicate whether or not they invalidate the CFGA llvm-svn: 2386
* Add #include that was removed from TargetMachine.hChris Lattner2002-04-281-0/+1
| | | | llvm-svn: 2381
OpenPOWER on IntegriCloud