aboutsummaryrefslogtreecommitdiffstats
Commit message (Collapse)AuthorAgeFilesLines
...
* Add instructions for (add|sub|and|or|xor)ri(8|16|32)Chris Lattner2003-06-051-2/+23
| | | | git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@6625 91177308-0d34-0410-b5e6-96231b3b80d8
* Fix bug: Jello/2003-06-04-bzip2-bug.llChris Lattner2003-06-051-23/+21
| | | | git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@6624 91177308-0d34-0410-b5e6-96231b3b80d8
* New testcase, the JIT currently handles this right, I just don't want toChris Lattner2003-06-051-0/+16
| | | | | | | reintroduce a bug that didn't have a testcase. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@6623 91177308-0d34-0410-b5e6-96231b3b80d8
* Fixed a bug so initialization code is always inserted in mainAnand Shukla2003-06-052-18/+44
| | | | git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@6622 91177308-0d34-0410-b5e6-96231b3b80d8
* New testcase for PHI handlingChris Lattner2003-06-051-0/+19
| | | | git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@6621 91177308-0d34-0410-b5e6-96231b3b80d8
* Use a constant expr GEP instead of an actual instructionChris Lattner2003-06-051-4/+2
| | | | git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@6620 91177308-0d34-0410-b5e6-96231b3b80d8
* All store instructions really want 'rd' in the first field.Misha Brukman2003-06-051-13/+20
| | | | | | | | | Special cases: STFSRx and STXFSRx - they operate on predefined rd=0 or rd=1, and expect %fsr as the parameter in assembly. They are disabled (since not used) until an encoding, both for code generation and output, is chosen. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@6619 91177308-0d34-0410-b5e6-96231b3b80d8
* Added missing 'rs1' field to F3_rdrs1imm13, 'rd' to F3_rdrs1rs2.Misha Brukman2003-06-051-3/+2
| | | | git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@6618 91177308-0d34-0410-b5e6-96231b3b80d8
* lib/CodeGen/Mapping/MappingInfo.cpp:Brian Gaeke2003-06-042-109/+117
| | | | | | | | | | | | | | | | | | | | | Update file comment to contain a bunch of the overview mapping-info documentation previously buried within the file. Remove some unnecessary include/using stmts. Rename pass to MappingInfoCollector. Rewrite a lot of it so it doesn't use global instance variables and so it outputs into MappingInfo objects and then dumps those out, instead of going straight to an assembly file. Change name of factory to getMappingInfoCollector. Fold prologue & epilogue writers into MappingInfo methods. lib/Target/Sparc/FInfo.cpp: Correct file comment to reflect above change lib/Target/Sparc/Sparc.cpp: Change name of factory to getMappingInfoCollector. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@6617 91177308-0d34-0410-b5e6-96231b3b80d8
* Add file comment. Include <vector> and <string>. Update include guardsBrian Gaeke2003-06-041-5/+32
| | | | | | | | to reflect file's current location. Add definition of class MappingInfo. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@6616 91177308-0d34-0410-b5e6-96231b3b80d8
* Revert brians patch to get mapping info working againChris Lattner2003-06-041-9/+4
| | | | | | | sorry dude git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@6615 91177308-0d34-0410-b5e6-96231b3b80d8
* Had to comment out a line in outByte() to get it to compile because Out and ↵Tanya Lattner2003-06-041-1/+1
| | | | | | | | | tmp were undeclared. I was not sure what Brian wanted, so I will let him fix this. But now it compiles. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@6614 91177308-0d34-0410-b5e6-96231b3b80d8
* Make this work with counter > 127Chris Lattner2003-06-041-1/+1
| | | | git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@6613 91177308-0d34-0410-b5e6-96231b3b80d8
* * Instead of re-inventing the MachineConstantPool emitter that's already givenMisha Brukman2003-06-042-111/+146
| | | | | | | | | | | | | | | | | | | | | in Emitter.cpp, just convert the Sparc version of the constant pool into what's already supported and inter-operate. * Implemented a first pass at lazy function resolution in the JITResolver. That required adding a SparcV9CodeEmitter pointer to simplify generating bit-patterns of the instructions. * SparcV9CodeEmitter now creates and destroys static TheJITResolver, which makes sense because the SparcV9CodeEmitter is the only user of TheJITResolver, and lives for the entire duration of the JIT (via PassManager which lives in VM). * Changed all return values in the JITResolver to uint64_t because of the 64-bit Sparc architecture. * Added a new version of getting the value of a GlobalValue in the SparcV9CodeEmitter, which now works for already-generated functions (JITted or library functions). * Removed little-used and unused functions, cleaning up the internal view of the SparcV9CodeEmitter. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@6612 91177308-0d34-0410-b5e6-96231b3b80d8
* Add prerelease license to cvsChris Lattner2003-06-041-0/+19
| | | | git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@6611 91177308-0d34-0410-b5e6-96231b3b80d8
* * Institute a hack for the Sparc call to mmap() to get our generated code to beMisha Brukman2003-06-041-10/+16
| | | | | | | | | | | | laid out closer to the VM so that calls to library functions (e.g. puts()) and callback (e.g. JITResolver::CompilationCallback) fit into 30 bits of the call instruction. * Abort if architecture is not yet supported (not X86 or Sparc) because it likely requires a different set of parameters to mmap() . * Stop using hard-coded values for page size; use sysconf(_SC_PAGESIZE) instead. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@6610 91177308-0d34-0410-b5e6-96231b3b80d8
* Make writeNumber() void. Get ready to decouple it from .byte directive output.Brian Gaeke2003-06-041-4/+9
| | | | git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@6609 91177308-0d34-0410-b5e6-96231b3b80d8
* Modify tracing rules to use opt -trace[m] instead of llc -trace[m].Vikram S. Adve2003-06-041-2/+3
| | | | git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@6607 91177308-0d34-0410-b5e6-96231b3b80d8
* Made changes suggested by ChrisSumant Kowshik2003-06-042-53/+57
| | | | git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@6606 91177308-0d34-0410-b5e6-96231b3b80d8
* Made changes suggested by Chris; Renamed 'union' function to unionSetsWithSumant Kowshik2003-06-042-22/+14
| | | | git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@6605 91177308-0d34-0410-b5e6-96231b3b80d8
* Clean up previous code.Chris Lattner2003-06-041-11/+20
| | | | | | | Add new combination to turn seteq X, 0 -> not(cast X to bool) git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@6604 91177308-0d34-0410-b5e6-96231b3b80d8
* Add new setCondition memberChris Lattner2003-06-041-4/+6
| | | | git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@6603 91177308-0d34-0410-b5e6-96231b3b80d8
* I have finally seen the light. The code to change the opcode must live higher inMisha Brukman2003-06-042-8/+26
| | | | | | | | | | | | the loop, and in both cases. In the first case, it is a VReg that is a constant so it may be actually converted to a constant. In the second case, it is already a constant, but then if it doesn't change its type (e.g. to become a register and have the value loaded from memory if it is too large to live in its instruction field), we must change the opcode BEFORE the 'continue', otherwise we miss the opportunity. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@6602 91177308-0d34-0410-b5e6-96231b3b80d8
* Added the 4.7 instruction class and all the FMOVcc instructions in them.Misha Brukman2003-06-042-37/+130
| | | | git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@6601 91177308-0d34-0410-b5e6-96231b3b80d8
* Modernize testcaseChris Lattner2003-06-041-8/+8
| | | | git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@6600 91177308-0d34-0410-b5e6-96231b3b80d8
* Implement combination of boolean not with branchChris Lattner2003-06-041-0/+14
| | | | git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@6599 91177308-0d34-0410-b5e6-96231b3b80d8
* Add new test for inverting branchesChris Lattner2003-06-041-0/+10
| | | | git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@6598 91177308-0d34-0410-b5e6-96231b3b80d8
* Comment out opcodes currently unused in the Sparc backend.Misha Brukman2003-06-041-0/+3
| | | | git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@6597 91177308-0d34-0410-b5e6-96231b3b80d8
* No really, you _cannot use_ getelementptr on an unsized type: that makesChris Lattner2003-06-041-5/+1
| | | | | | | no sense. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@6595 91177308-0d34-0410-b5e6-96231b3b80d8
* Added instruction format class 3.15 and floating-point compare instructions.Misha Brukman2003-06-042-11/+22
| | | | git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@6594 91177308-0d34-0410-b5e6-96231b3b80d8
* Undo one of those last fixes -- it was incorrect.Vikram S. Adve2003-06-041-3/+5
| | | | git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@6593 91177308-0d34-0410-b5e6-96231b3b80d8
* Sparc's dlsym() requires the special operand RTLD_SELF to find a symbol in theMisha Brukman2003-06-041-0/+4
| | | | | | | currently-running process. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@6592 91177308-0d34-0410-b5e6-96231b3b80d8
* Avoid generating a getelementptr instruction of a functionChris Lattner2003-06-041-1/+1
| | | | git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@6591 91177308-0d34-0410-b5e6-96231b3b80d8
* Pass through the emitConstantPool() call to the real emitter.Misha Brukman2003-06-031-0/+4
| | | | git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@6590 91177308-0d34-0410-b5e6-96231b3b80d8
* Make the write*map methods more self-contained. Document some more.Brian Gaeke2003-06-031-42/+57
| | | | git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@6589 91177308-0d34-0410-b5e6-96231b3b80d8
* Improved how tracing can be used:Vikram S. Adve2003-06-031-4/+10
| | | | | | | | -- added new targets %.trace-out-llc and %.trace-out-cbe -- either TRACE=yes or TRACEM=yes is still needed and chooses how to trace git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@6585 91177308-0d34-0410-b5e6-96231b3b80d8
* Minor cleanups:Chris Lattner2003-06-031-52/+29
| | | | | | | | | * Document the MOTy namespace correctly for doxygen * Eliminate usage of the MachineOpCode typedef, which should eventually be eliminated entirely. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@6584 91177308-0d34-0410-b5e6-96231b3b80d8
* Remove usage of typedefChris Lattner2003-06-032-8/+4
| | | | git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@6583 91177308-0d34-0410-b5e6-96231b3b80d8
* Remove use of enumChris Lattner2003-06-031-4/+4
| | | | git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@6582 91177308-0d34-0410-b5e6-96231b3b80d8
* Add namespace comments for doxygenChris Lattner2003-06-032-5/+6
| | | | git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@6581 91177308-0d34-0410-b5e6-96231b3b80d8
* There are now no uses of NonCopyableVChris Lattner2003-06-031-11/+0
| | | | git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@6580 91177308-0d34-0410-b5e6-96231b3b80d8
* Add doxygen comment for namespaceChris Lattner2003-06-032-2/+8
| | | | git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@6579 91177308-0d34-0410-b5e6-96231b3b80d8
* Add comment for doxygen for namespaceChris Lattner2003-06-031-0/+4
| | | | git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@6578 91177308-0d34-0410-b5e6-96231b3b80d8
* Minor cleanups:Chris Lattner2003-06-031-26/+36
| | | | | | | | | * LLVM #include should use "", not <> * Fix line wrapping * Remove noncopyable base class to improve doxygen output git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@6577 91177308-0d34-0410-b5e6-96231b3b80d8
* Remove noncopyable base class as it was making the doxygen docs harder to readChris Lattner2003-06-031-2/+3
| | | | git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@6576 91177308-0d34-0410-b5e6-96231b3b80d8
* Remove noncopyableV base classes, as they were confusing the doxygen ↵Chris Lattner2003-06-034-10/+19
| | | | | | | | | documentation, making it harder to read. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@6575 91177308-0d34-0410-b5e6-96231b3b80d8
* I documented this file, in an attempt to understand it, with a view towardBrian Gaeke2003-06-031-56/+73
| | | | | | | | | | | | rewriting it. I also vacuumed out all the commented-out code and inaccurate comments, etc. (We need to put the mapping information in a data structure so that we can pass it out to the JIT, instead of automagically converting it to .byte directives.) git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@6574 91177308-0d34-0410-b5e6-96231b3b80d8
* Spiff up options a bitChris Lattner2003-06-032-4/+6
| | | | git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@6573 91177308-0d34-0410-b5e6-96231b3b80d8
* Use the new -o tablegen optionChris Lattner2003-06-031-4/+1
| | | | git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@6572 91177308-0d34-0410-b5e6-96231b3b80d8
* Add -o support for TableGenChris Lattner2003-06-032-8/+50
| | | | | | | | I figure that misha has done a lot of things on my todo list, the least I can do is reciprocate a bit. :) git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@6571 91177308-0d34-0410-b5e6-96231b3b80d8