summaryrefslogtreecommitdiffstats
path: root/llvm/lib/Target/Sparc
Commit message (Collapse)AuthorAgeFilesLines
...
* This should work better with re-generating the SparcV9CodeEmitter.inc file.Misha Brukman2003-05-291-6/+8
| | | | | | Also, added a rule to delete the generated .inc file on `make clean'. llvm-svn: 6389
* * Broke up SparcV9.td into separate files as it was getting unmanageableMisha Brukman2003-05-295-258/+381
| | | | | | | | * Added some Format 4 classes, but not instructions * Added notes on missing sections with FIXMEs * Added RDCCR instr llvm-svn: 6388
* Fixed ordering of elements in instructions: although the binary instructionsMisha Brukman2003-05-281-30/+50
| | | | | | | | | | | list (rd, rs1, imm), in that order (bit-wise), the actual assembly syntax is instr rd, imm, rs1, and that is how they are constructed in the instruction selector. This fixes the discrepancy. Also fixed some comments along the same lines and fixed page numbers referring to where instructions are described in the Sparc manual. llvm-svn: 6384
* Add dependency to make TableGen rule fire.Brian Gaeke2003-05-281-0/+2
| | | | llvm-svn: 6383
* Fixed an error preventing compilation.Misha Brukman2003-05-272-2/+2
| | | | llvm-svn: 6381
* Added the 'r' and 'i' annotations to instructions as their opcode names haveMisha Brukman2003-05-271-3/+3
| | | | | | changed. llvm-svn: 6380
* Keep track of the current BasicBlock being processed so that a referencingMisha Brukman2003-05-272-2/+4
| | | | | | MachineInstr can later be patched up correctly. llvm-svn: 6378
* Added 'r' and 'i' annotations to instructions as SparcInstr.def has changed.Misha Brukman2003-05-271-19/+22
| | | | llvm-svn: 6377
* Added 'r' or 'i' annotations to instructions, as SparcInstr.def has changed.Misha Brukman2003-05-271-16/+16
| | | | | | | | | Non-obvious change: since I have changed ST and STD to be STF and STDF to (a) closer resemble their name (NOT assembly text) in the Sparc manual, and (b) clearly specify that they they are floating-point opcodes, I made the same changes in this file. llvm-svn: 6376
* Added 'r' or 'i' annotations to instructions, as SparcInstr.def has changed.Misha Brukman2003-05-271-41/+79
| | | | | | | | | | Here I had to make one non-trivial change: add a function to get a version of the opcode that takes an immediate, given an opcode that takes all registers. This is required because sometimes it is not known at construction time which opcode is used because opcodes are passed around between functions. llvm-svn: 6375
* Added 'r' or 'i' annotations to instructions, as SparcInstr.def has changed.Misha Brukman2003-05-273-27/+30
| | | | llvm-svn: 6373
* Added entries for each of the instructions with annotations ('r' or 'i').Misha Brukman2003-05-271-34/+57
| | | | llvm-svn: 6372
* One of the first major changes to make the work of JITting easier: addingMisha Brukman2003-05-271-55/+113
| | | | | | | | | | | | | | | | annotations on instructions to specify which format they are (i.e., do they take 2 registers and 1 immediate or just 3 registers) as that changes their binary representation and hence, code emission. This makes instructions more like how X86 defines them to be. Now, writers of instruction selection must choose the correct opcode based on what instruction type they are building, which they already know. Thus, the JIT doesn't have to do the same work by `discovering' which operands an instruction really has. As this involves lots of small changes to a lot of files in lib/target/Sparc, I'll commit them individually because otherwise the diffs will be unreadable. llvm-svn: 6371
* * Allow passing in an unsigned configuration to allocateSparcTargetMachine()Misha Brukman2003-05-271-10/+35
| | | | | | | | a default value is set in the header file. * Fixed some code layout to make it more consistent with the rest of codebase * Added addPassesToJITCompile() with relevant passes llvm-svn: 6369
* Moved generation of the SparcV9CodeEmitter.inc file higher in the Makefile soMisha Brukman2003-05-271-3/+4
| | | | | | that Makefile.common would see it. llvm-svn: 6367
* Add prototypes to add passes to JIT compilation and code emission.Misha Brukman2003-05-271-8/+17
| | | | | | | | Also, added annotations to how instructions are modified (reg/imm operands). Added prototype for adding register numbers to values pass for interfacing with the target-independent register allocators in the JIT. llvm-svn: 6366
* Broke out class definition from SparcV9CodeEmitter, and added ability to take aMisha Brukman2003-05-272-25/+35
| | | | | | | MachineCodeEmitter to make a pass-through debugger -- output to memory and to std::cerr. llvm-svn: 6363
* SparcV9CodeEmitter.cpp is a part of the Sparc code emitter. The main functionMisha Brukman2003-05-273-0/+94
| | | | | | | | | | | that assembles instructions is generated via TableGen (and hence must be built before building this directory, but that's already the case in the top-level Makefile). Also added is .cvsignore to ignore the generated file `SparcV9CodeEmitter.inc', which is included by SparcV9CodeEmitter.cpp . llvm-svn: 6357
* Added definitions for a bunch of floating-point instructions.Misha Brukman2003-05-271-65/+381
| | | | llvm-svn: 6356
* Added special register class containing (for now) %fsr.Vikram S. Adve2003-05-275-158/+111
| | | | | | | | 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: right shift for int divide-by-power-of-2 was incorrect forVikram S. Adve2003-05-251-11/+48
| | | | | | negative values. Need to add one to a negative value before right shift! llvm-svn: 6334
* Bug fix: padding bytes within a structure should go after each field!Vikram S. Adve2003-05-251-5/+5
| | | | llvm-svn: 6333
* Bug fix: sign-extension was not happening for C = -MININT since C == -C!Vikram S. Adve2003-05-251-2/+3
| | | | llvm-svn: 6332
* Add support for compiling varargs functions.Vikram S. Adve2003-05-254-77/+179
| | | | llvm-svn: 6325
* Reword to remove reference to how things worked in the past.Misha Brukman2003-05-241-4/+3
| | | | llvm-svn: 6323
* Implement the TargetInstrInfo's createNOPinstr() and isNOPinstr() interface.Misha Brukman2003-05-241-0/+29
| | | | llvm-svn: 6320
* Cleaned up code layout; no functional changes.Misha Brukman2003-05-231-24/+20
| | | | llvm-svn: 6312
* Fixed `volatile' typo.Misha Brukman2003-05-211-1/+1
| | | | llvm-svn: 6266
* Cleaned up code layout, spacing, etc. for readability purposes and to be moreMisha Brukman2003-05-212-307/+281
| | | | | | | | | consistent with the style of LLVM's code base (and itself! it's inconsistent in some places.) No functional changes were made. llvm-svn: 6265
* Cleaned up code layout, spacing, etc. for readability purposes and to be moreMisha Brukman2003-05-211-59/+44
| | | | | | | | | consistent with the style of LLVM's code base (and itself! it's inconsistent in some places.) No functional changes were made. llvm-svn: 6262
* Namespacified `vector' and `cerr' to always use the `std::' namespace.Misha Brukman2003-05-213-88/+90
| | | | | | Eliminated `using' directives. llvm-svn: 6261
* Sparc instruction opcodes now all live under the `V9' namespace.Misha Brukman2003-05-208-568/+569
| | | | llvm-svn: 6249
* Remove wierd printoutChris Lattner2003-05-121-1/+1
| | | | llvm-svn: 6145
* Added the initial version of the TableGen description for the Sparc backend.Misha Brukman2003-05-071-0/+359
| | | | llvm-svn: 6021
* Eliminate use of NonCopyable so that doxygen documentation doesn't linkChris Lattner2003-05-011-3/+4
| | | | | | the Annotation classes with the noncopyable classes for no reason llvm-svn: 5973
* Remove two fields from TargetData which are target specific.Chris Lattner2003-04-261-1/+1
| | | | llvm-svn: 5963
* IntegerRegSize is always 8 for sparcChris Lattner2003-04-262-6/+3
| | | | llvm-svn: 5961
* Fix obvious type-oChris Lattner2003-04-252-3/+3
| | | | llvm-svn: 5932
* Trivial cleanupChris Lattner2003-04-241-5/+5
| | | | llvm-svn: 5899
* Add support for the Switch instruction by running the lowerSwitch pass firstChris Lattner2003-04-231-0/+3
| | | | llvm-svn: 5867
* Add new linkage types to support a real frontendChris Lattner2003-04-161-1/+2
| | | | llvm-svn: 5786
* Move sparc specific code into the Sparc backendChris Lattner2003-01-153-2/+271
| | | | llvm-svn: 5317
* Fix warningsChris Lattner2003-01-151-4/+3
| | | | llvm-svn: 5316
* Adjust to simpler interfacesChris Lattner2003-01-152-49/+42
| | | | | | Eliminate dependency on RegClass.h llvm-svn: 5315
* #include RegClass.h explicitlyChris Lattner2003-01-151-0/+1
| | | | llvm-svn: 5307
* Move private header to private directoryChris Lattner2003-01-152-2/+2
| | | | llvm-svn: 5305
* Prune #includesChris Lattner2003-01-152-2/+0
| | | | llvm-svn: 5303
* Use BuildMI moreChris Lattner2003-01-152-242/+156
| | | | llvm-svn: 5299
* Fix bug found by regtestsChris Lattner2003-01-151-9/+5
| | | | llvm-svn: 5294
* Use BuildMI more, Create*Instruction lessChris Lattner2003-01-153-135/+71
| | | | llvm-svn: 5291
OpenPOWER on IntegriCloud