aboutsummaryrefslogtreecommitdiff
path: root/lib/Target/SparcV9/SparcV9CodeEmitter.cpp
AgeCommit message (Collapse)Author
2006-04-20This target is no longer built. The ,v files now live in the reoptimizer.Chris Lattner
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@27885 91177308-0d34-0410-b5e6-96231b3b80d8
2006-01-22Add explicit #includes of <iostream>Chris Lattner
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@25509 91177308-0d34-0410-b5e6-96231b3b80d8
2005-06-18Clean up some uninitialized variables and missing return statements thatReid Spencer
GCC 4.0.0 compiler (sometimes incorrectly) warns about under release build. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@22249 91177308-0d34-0410-b5e6-96231b3b80d8
2005-04-21Remove trailing whitespaceMisha Brukman
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@21425 91177308-0d34-0410-b5e6-96231b3b80d8
2004-12-16Use the rules in Makefile.rules to build SparcV9GenCodeEmitter.inc insteadChris Lattner
of custom rules. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@18984 91177308-0d34-0410-b5e6-96231b3b80d8
2004-11-23Squelch a bogus warningChris Lattner
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@18157 91177308-0d34-0410-b5e6-96231b3b80d8
2004-11-22Remove some dead vars and some useless namespacificationChris Lattner
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@18126 91177308-0d34-0410-b5e6-96231b3b80d8
2004-11-22Implement a disgusting hack to work around broken machine code emission ofChris Lattner
the RDCCR instruction. This fixes a bunch of programs with the JIT. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@18124 91177308-0d34-0410-b5e6-96231b3b80d8
2004-11-22Remove JIT-specific code from the code emitter.Chris Lattner
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@18122 91177308-0d34-0410-b5e6-96231b3b80d8
2004-11-20Adjust to changed interfacesChris Lattner
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@18064 91177308-0d34-0410-b5e6-96231b3b80d8
2004-10-09Instead of silently breaking, print notification of why this doesn't work.Chris Lattner
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@16870 91177308-0d34-0410-b5e6-96231b3b80d8
2004-09-29Change the #ifdefs to allow compilation with a V8 compiler, but the JIT stillMisha Brukman
won't work if not compiled in V9 mode, currently by GCC only, because Sun's system compiler does not tell us if it's a V8 or V9 system. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@16602 91177308-0d34-0410-b5e6-96231b3b80d8
2004-09-01Changes For Bug 352Reid Spencer
Move include/Config and include/Support into include/llvm/Config, include/llvm/ADT and include/llvm/Support. From here on out, all LLVM public header files must be under include/llvm/. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@16137 91177308-0d34-0410-b5e6-96231b3b80d8
2004-08-16Move MachineCodeForInstruction.h and MachineFunctionInfo.h into ↵Chris Lattner
lib/Target/SparcV9 git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@15830 91177308-0d34-0410-b5e6-96231b3b80d8
2004-08-04* Remove unnecessary commentMisha Brukman
* Fix alignment of code * Tabs to spaces git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@15505 91177308-0d34-0410-b5e6-96231b3b80d8
2004-07-27Get rid of the (apparently non-working) filePrinterEmitter which is added inBrian Gaeke
debug mode. Its only effect seems to be the creation of an empty file... git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@15289 91177308-0d34-0410-b5e6-96231b3b80d8
2004-07-19Inline 4 methodsChris Lattner
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@15000 91177308-0d34-0410-b5e6-96231b3b80d8
2004-06-09Encode %fsr correctly; don't fail an assertion.Brian Gaeke
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@14103 91177308-0d34-0410-b5e6-96231b3b80d8
2004-06-09Fix assertion failure message to have the right method name.Brian Gaeke
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@14101 91177308-0d34-0410-b5e6-96231b3b80d8
2004-06-03Collapse together the abstract superclass TargetRegInfo and SparcV9RegInfo, itsBrian Gaeke
only concrete implementation. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@13977 91177308-0d34-0410-b5e6-96231b3b80d8
2004-06-02Convert to the new TargetMachine interface.Chris Lattner
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@13952 91177308-0d34-0410-b5e6-96231b3b80d8
2004-05-20Fix a bug in outputting branches to constant PCs. Since the PC is supplied asBrian Gaeke
a full 64-bit address, it must be adjusted to fit in the branch instruction's immediate field. (This is only used in the reoptimizer, for now.) git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@13608 91177308-0d34-0410-b5e6-96231b3b80d8
2004-05-19Minor simplification: eliminate a dyn_cast.Brian Gaeke
Fix a typo in a debug message. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@13607 91177308-0d34-0410-b5e6-96231b3b80d8
2004-04-23Get rid of the old byte-at-a-time emission code used when the Sparc JIT wasBrian Gaeke
being tested on X86, as per Chris's request. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@13124 91177308-0d34-0410-b5e6-96231b3b80d8
2004-04-23Emit SPARC machine code a word at a time instead of a byte at a time.Brian Gaeke
Use emitWordAt() to emit forward-branch fixups. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@13119 91177308-0d34-0410-b5e6-96231b3b80d8
2004-02-25Great renaming: Sparc --> SparcV9Brian Gaeke
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@11826 91177308-0d34-0410-b5e6-96231b3b80d8
2004-02-22Move MOTy::UseType enum into MachineOperand. This eliminates theAlkis Evlogimenos
switch statements in the constructors and simplifies the implementation of the getUseType() member function. You will have to specify defs using MachineOperand::Def instead of MOTy::Def though (similarly for Use and UseAndDef). git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@11715 91177308-0d34-0410-b5e6-96231b3b80d8
2004-02-13Remove getAllocatedRegNum(). Use getReg() instead.Alkis Evlogimenos
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@11393 91177308-0d34-0410-b5e6-96231b3b80d8
2004-02-12Change MachineBasicBlock's vector of MachineInstr pointers into anAlkis Evlogimenos
ilist of MachineInstr objects. This allows constant time removal and insertion of MachineInstr instances from anywhere in each MachineBasicBlock. It also allows for constant time splicing of MachineInstrs into or out of MachineBasicBlocks. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@11340 91177308-0d34-0410-b5e6-96231b3b80d8
2004-02-11Remove assert as the only integer registers on the sparc are physical.Alkis Evlogimenos
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@11317 91177308-0d34-0410-b5e6-96231b3b80d8
2004-02-11Fix previous broken commit. A MachineOperand may have opType ==Alkis Evlogimenos
MO_VirtualRegister but if the register number is one of a physical register is it considered as a physical register. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@11315 91177308-0d34-0410-b5e6-96231b3b80d8
2004-02-11Remove assert as it is meaningless. MachineOperands can be tagged asAlkis Evlogimenos
MO_VirtualRegister but actually be representing a physical register. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@11310 91177308-0d34-0410-b5e6-96231b3b80d8
2004-02-10Remvoe use of MO.isVirtualRegister(), turn an assertion into an assert()Chris Lattner
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@11280 91177308-0d34-0410-b5e6-96231b3b80d8
2004-02-10Remove use of isPhysicalRegisterChris Lattner
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@11277 91177308-0d34-0410-b5e6-96231b3b80d8
2003-12-20Hoist some sparc specific code into the sparc targetChris Lattner
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@10554 91177308-0d34-0410-b5e6-96231b3b80d8
2003-12-20Rip JIT specific stuff out of TargetMachine, as per PR176Chris Lattner
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@10542 91177308-0d34-0410-b5e6-96231b3b80d8
2003-12-17Reorganized the Sparc backend to be more modular -- each differentMisha Brukman
implementation of a Target{RegInfo, InstrInfo, Machine, etc} now has a separate header and a separate implementation file. This means that instead of a massive SparcInternals.h that forces a recompilation of the whole target whenever a minor detail is changed, you should only recompile a few files. Note that SparcInternals.h is still around; its contents should be minimized. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@10500 91177308-0d34-0410-b5e6-96231b3b80d8
2003-12-14Change interface of MachineOperand as follows:Alkis Evlogimenos
a) remove opIsUse(), opIsDefOnly(), opIsDefAndUse() b) add isUse(), isDef() c) rename opHiBits32() to isHiBits32(), opLoBits32() to isLoBits32(), opHiBits64() to isHiBits64(), opLoBits64() to isLoBits64(). This results to much more readable code, for example compare "op.opIsDef() || op.opIsDefAndUse()" to "op.isDef()" a pattern used very often in the code. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@10461 91177308-0d34-0410-b5e6-96231b3b80d8
2003-11-21* Add code to flush the ICache, which any self-respecting SMC must doMisha Brukman
* Restore registers *after* everything else to avoid any possible side effects This fixes McCat-imp. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@10147 91177308-0d34-0410-b5e6-96231b3b80d8
2003-11-13Include the file before we close the llvm namespace.Misha Brukman
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@9954 91177308-0d34-0410-b5e6-96231b3b80d8
2003-11-11Put all LLVM code into the llvm namespace, as per bug 109.Brian Gaeke
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@9903 91177308-0d34-0410-b5e6-96231b3b80d8
2003-11-09Fix PR103Brian Gaeke
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@9830 91177308-0d34-0410-b5e6-96231b3b80d8
2003-11-07Implement branching to a PC-relative constant (not a BasicBlock).Misha Brukman
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@9793 91177308-0d34-0410-b5e6-96231b3b80d8
2003-11-07Switch to emitting MachineConstantPool the way it was meant to be done.Misha Brukman
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@9777 91177308-0d34-0410-b5e6-96231b3b80d8
2003-10-20Added LLVM project notice to the top of every C++ source file.John Criswell
Header files will be on the way. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@9298 91177308-0d34-0410-b5e6-96231b3b80d8
2003-10-20Minor leftover fixups from replaceMachineCodeForFunction () change.Brian Gaeke
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@9295 91177308-0d34-0410-b5e6-96231b3b80d8
2003-10-20Make replaceMachineCodeForFunction return void.Brian Gaeke
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@9288 91177308-0d34-0410-b5e6-96231b3b80d8
2003-10-17Refactor jump insertion code from CompilationCallback() into insertJumpAtAddr().Brian Gaeke
Make insertFarJumpAtAddr() return void, because nothing uses its return value. Remove some commented-out code. Implement replaceMachineCodeForFunction() for SPARC. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@9203 91177308-0d34-0410-b5e6-96231b3b80d8
2003-10-13Remove WordsEmitted statistic; there's already a non-backend-specificBrian Gaeke
jello statistic for this (just divide #-bytes-of-code-emitted by 4). Rewrite head-of-file comment. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@9098 91177308-0d34-0410-b5e6-96231b3b80d8
2003-10-10Fix spelling.Misha Brukman
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@9027 91177308-0d34-0410-b5e6-96231b3b80d8