summaryrefslogtreecommitdiffstats
path: root/llvm/lib/Target/Sparc
Commit message (Collapse)AuthorAgeFilesLines
* Several bug fixes in casting to signed int values.Vikram S. Adve2002-08-131-69/+141
| | | | llvm-svn: 3301
* Handle small unsigned results correctly by clearing high bits.Vikram S. Adve2002-08-131-34/+64
| | | | | | Bug fixes in casting to signed int values. llvm-svn: 3297
* Build correctly in the face of /shared.Brian Ensink2002-08-121-7/+5
| | | | | | -Chris llvm-svn: 3296
* - Clean up interface to Sparc register handling a bit:Chris Lattner2002-08-125-186/+170
| | | | | | | | | | | | - Eliminate Sparc*Order classes, moving contents to Sparc*Class classes - get register name methods now return const char * const pointers instead of std::string's. - Added file header comments to SparcRegClassInfo.(cpp|h) - Moved BIG constant arrays out of SparcRegClassInfo.h, into SparcRegInfo.cpp. This should allow a LOT of std::string constructors to not have to be called. llvm-svn: 3295
* * Removed extraneous #includesChris Lattner2002-08-095-63/+31
| | | | | | | * Fixed file headers to be consistent with the rest of LLVM * Other minor fixes llvm-svn: 3278
* Merge three loops into one.Chris Lattner2002-08-071-23/+18
| | | | llvm-svn: 3259
* Fix breakage in the buildChris Lattner2002-08-071-3/+2
| | | | llvm-svn: 3258
* added Mapping and Function PassMehwish Nagda2002-08-051-1/+5
| | | | llvm-svn: 3251
* Bug fix in CreateCodeToLoadConst(): use sign of dest, not operand,Vikram S. Adve2002-08-041-29/+7
| | | | | | in choosing how to create int-set instructions. llvm-svn: 3248
* Bug fix in SetOperandsForMemInstr: handle leading zeros correctlyVikram S. Adve2002-08-041-5/+9
| | | | | | when folding or not folding GEPs. llvm-svn: 3245
* Fix compilation problem. IsIndexZero doesn't exist, use IsZero instead.Chris Lattner2002-08-031-6/+4
| | | | llvm-svn: 3243
* Simplified handling of array indexes in SetMemOperands_Internal.Vikram S. Adve2002-08-031-77/+62
| | | | llvm-svn: 3236
* Bug fix: incorrect SAVE instruction when using register for stack size.Vikram S. Adve2002-08-011-1/+1
| | | | llvm-svn: 3198
* Just improved comments and assertions.Vikram S. Adve2002-07-311-14/+18
| | | | llvm-svn: 3191
* Add a missing case: converting float/double to unsigned integer types.Vikram S. Adve2002-07-311-77/+73
| | | | llvm-svn: 3188
* * Move InstructionSelection pass to lib/CodeGen/InstrSelection so it isChris Lattner2002-07-301-18/+1
| | | | | | shared by backends. llvm-svn: 3146
* changed implementation of LLVM BYTECODE LengthMehwish Nagda2002-07-251-18/+16
| | | | llvm-svn: 3089
* GCC 3.1 changes, finally the burm file builds the FIRST time a clean ↵Chris Lattner2002-07-255-9/+18
| | | | | | directory is built. llvm-svn: 3073
* *** empty log message ***Chris Lattner2002-07-243-8/+8
| | | | llvm-svn: 3056
* moved from CodeGen to this dirMehwish Nagda2002-07-221-0/+11
| | | | llvm-svn: 2992
* Adding code for outputing length in .sAnand Shukla2002-07-211-2/+20
| | | | llvm-svn: 2979
* * 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
* Added the Mapping Pass to out put Mapping Info to .s fileMehwish Nagda2002-07-151-3/+6
| | | | llvm-svn: 2913
* added std:: to vectorAnand Shukla2002-07-111-2/+2
| | | | llvm-svn: 2874
* Changed interface to insertCallerSavingCode().Vikram S. Adve2002-07-101-1/+3
| | | | llvm-svn: 2859
* Stop using pseudo-instructions (SETX, SETUW, SETSW)Vikram S. Adve2002-07-101-10/+28
| | | | | | and generate actual machine instruction sequences directly. llvm-svn: 2858
* Add support to print %hh, %hm, %lm, or %lo in an operand field.Vikram S. Adve2002-07-101-14/+30
| | | | llvm-svn: 2857
* Major overhaul to stop using pseudo-instructions (SETX, SETUW, SETSW)Vikram S. Adve2002-07-101-110/+207
| | | | | | | | | | | and generate actual machine instruction sequences directly. Also a couple of bug fixes in code for putting constants into registers: -- Do *not* sign-extend unsigned constant that is shorter than int reg size -- Fix handling of address constant (a GlobalValue) vs. constant that must be loaded. llvm-svn: 2856
* More important fixes:Vikram S. Adve2002-07-101-40/+53
| | | | | | | | | | -- FP argument to a function with no prototype going on stack was not being copied to the stack in colorCallArgs(). -- Put caller-saving code *before* argument copying code so that we don't trash a register before saving it! -- Two other minor fixes. llvm-svn: 2855
* Added std:: to mem_fun for 64-bit gccAnand Shukla2002-07-091-2/+2
| | | | llvm-svn: 2845
* Added support for printing constant global references toVikram S. Adve2002-07-091-4/+10
| | | | | | assembly. llvm-svn: 2842
* Numerous changes in interface to class SparcRegInfo corresponding toVikram S. Adve2002-07-081-75/+78
| | | | | | | | changes in class MachineRegInfo (see MachineRegInfo.h for details). Added {LD,ST}[X]FSR instructions. llvm-svn: 2839
* class MachineCodeForBasicBlock is now an annotation on BasicBlock.Vikram S. Adve2002-07-081-2/+3
| | | | llvm-svn: 2838
* BA no longer has the unused CC operand.Vikram S. Adve2002-07-081-2/+3
| | | | llvm-svn: 2837
* Have to save a boolean (setCC) value whenever use is outside the currentVikram S. Adve2002-07-081-20/+16
| | | | | | | | | | basic block. Mark setCCInstr used as dest. of conditional-move as both a def and a use. BA instruction no longer has the unused CC argument. llvm-svn: 2836
* BA has only one argument.Vikram S. Adve2002-07-081-8/+12
| | | | | | | Added LDFSR, LDXFSR, STFSR and STXFSR. Fixed operands info for RDCCR, WRCCR. llvm-svn: 2835
* Significant changes to correctly spill CC registers and to correctlyVikram S. Adve2002-07-081-214/+273
| | | | | | | | | | | | | | | | | | | | | | | | | | handle conditional move instructions: -- cpMem<->Reg functions now support CC registers (int and FP) correctly. Also, cpMem<->Reg functions now return a vector of machine instructions. -- Scratch registers must be explicitly provided to cpMem<->Reg when needed, since CC regs need one to be copied to/from memory. -- CC regs are saved to a scratch register instead of stack. -- All regs used by a instruction are now recorded in MachineInstr::regsUsed, since regs used to save values *across* an instruction are not obvious either from the operands or from the LiveVar sets. -- An (explicit or implicit) operand may now be both a def and a use. This is needed for conditional move operations. So an operand may need spill code both before and after the instruction. Other changes: -- Added several get{Class,Type} functions. -- Added unified-to-local register number conversion. -- class MachineCodeForBasicBlock is now an annotation on BasicBlock. -- Suggest/Color methods may modify the MachineInstr (and always did), so don't make that argument const! -- Caller-saving code doesn't need its special purpose code for handling CC registers since cpMem<->Reg handle those correctly now. llvm-svn: 2834
* Remove diff-cluttering tagsChris Lattner2002-06-302-2/+0
| | | | llvm-svn: 2808
* changes to make it compatible with 64bit gccAnand Shukla2002-06-255-6/+8
| | | | llvm-svn: 2791
* MEGAPATCH checkin.Chris Lattner2002-06-255-110/+97
| | | | | | For details, See: docs/2002-06-25-MegaPatchInfo.txt llvm-svn: 2778
* Fix constnessChris Lattner2002-06-051-1/+1
| | | | llvm-svn: 2762
* Fix Constness problemsChris Lattner2002-06-051-13/+13
| | | | llvm-svn: 2761
* Disable debugging outputChris Lattner2002-06-041-1/+1
| | | | llvm-svn: 2756
* Convert RegClass::IsColorUsedArr from a dynamically allocated array toChris Lattner2002-05-232-17/+19
| | | | | | a vector. This makes asserting on array bounds easier. llvm-svn: 2731
* Fixed the makefile to not die when compiling a new, empty, source directoryMehwish Nagda2002-05-211-0/+3
| | | | llvm-svn: 2688
* Rename IsPowerOf2 to isPowerOf2Chris Lattner2002-05-191-2/+2
| | | | llvm-svn: 2663
* Numerous bug fixes:Vikram S. Adve2002-05-198-887/+1004
| | | | | | | | | | | | | | | | | | | | | | | | -- 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
* Replace all usages of Type::isPointerType with isa<PointerType>Chris Lattner2002-05-062-41/+29
| | | | llvm-svn: 2486
* Eliminate duplicate or unneccesary #include'sChris Lattner2002-04-295-5/+2
| | | | llvm-svn: 2397
* Add new optional getPassName() virtual function that a Pass can overrideChris Lattner2002-04-294-0/+20
| | | | | | to make debugging output a lot nicer. llvm-svn: 2395
OpenPOWER on IntegriCloud