aboutsummaryrefslogtreecommitdiff
path: root/lib/Target/Sparc
AgeCommit message (Collapse)Author
2004-07-08Support 'ret float'Brian Gaeke
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@14681 91177308-0d34-0410-b5e6-96231b3b80d8
2004-07-04Add #includesChris Lattner
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@14625 91177308-0d34-0410-b5e6-96231b3b80d8
2004-07-02Fix potential problems with unreachable basic blocks.Chris Lattner
Also, while noone's looking, add support for constant expressions. Wait, I said not to look! git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@14566 91177308-0d34-0410-b5e6-96231b3b80d8
2004-06-30Fix indentation to be 2 spaces.Misha Brukman
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@14512 91177308-0d34-0410-b5e6-96231b3b80d8
2004-06-30visitSetCondInst() takes a parameter of type `SetCondInst'Misha Brukman
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@14508 91177308-0d34-0410-b5e6-96231b3b80d8
2004-06-27Allow saving and restoring of double and float registers.Brian Gaeke
Allow copying of float registers. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@14445 91177308-0d34-0410-b5e6-96231b3b80d8
2004-06-27Add FITOS, FITOD, and F{ADD,SUB,MUL,DIV}{S,D}.Brian Gaeke
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@14444 91177308-0d34-0410-b5e6-96231b3b80d8
2004-06-27Support printing constant pool indices.Brian Gaeke
If we see an "unknown operand", abort so it's easier to fix it. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@14441 91177308-0d34-0410-b5e6-96231b3b80d8
2004-06-27Trim whitespace.Brian Gaeke
Support cast of ints (and narrower) to float and double. Support cast double to double (using load and store). Abort if we see a CallInst or SetCondInst with long/fp args, instead of producing bad code. Support add, sub, mul, div of float and double. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@14440 91177308-0d34-0410-b5e6-96231b3b80d8
2004-06-24* LowercaseString moved to StringExtras.hMisha Brukman
* Wrap long line to 80 cols git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@14382 91177308-0d34-0410-b5e6-96231b3b80d8
2004-06-24Add FSTOD and FDTOS conversion instructions.Brian Gaeke
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@14372 91177308-0d34-0410-b5e6-96231b3b80d8
2004-06-24Support cast float to float, cast double to float, and cast float to double.Brian Gaeke
(It's not yet clear how to copy doubles from register to register.) git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@14371 91177308-0d34-0410-b5e6-96231b3b80d8
2004-06-24Make the double-fp pseudo registers be "NamedRegs".Brian Gaeke
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@14366 91177308-0d34-0410-b5e6-96231b3b80d8
2004-06-24Fix a dyn_cast in copyConstantToRegister which should have been a cast.Brian Gaeke
Compactify the code that emits copies of constant ints into registers. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@14365 91177308-0d34-0410-b5e6-96231b3b80d8
2004-06-24The long integer pseudo-regs are history. So long, we hardly knew ye.Brian Gaeke
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@14364 91177308-0d34-0410-b5e6-96231b3b80d8
2004-06-24Use correct add*Imm form in more BuildMI calls.Brian Gaeke
Fix bug in emitGEPOperation where we weren't passing MBB, IP to getReg. (hey, wouldn't a constant expression lowering pass be cool? huh huhuhuh) Fix bug in emitGEPOperation where we might try to OR a constant into a register which was too big to fit in the immediate field. Support and, or, xor of longs. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@14363 91177308-0d34-0410-b5e6-96231b3b80d8
2004-06-24Rename the load and store opcodes. The non-fp ones only have oneBrian Gaeke
variant worth worrying about; the fp ones have two. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@14362 91177308-0d34-0410-b5e6-96231b3b80d8
2004-06-24Rename the load and store opcodes. The non-fp ones only have oneBrian Gaeke
variant worth worrying about; the fp ones have two. Add fp stores. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@14361 91177308-0d34-0410-b5e6-96231b3b80d8
2004-06-24Rename the load and store opcodes. The non-fp ones only have oneBrian Gaeke
variant worth worrying about; the fp ones have two. Stub out the case analysis of int-to-fp casts (no code yet). I think the number of operands passed to BuildMI for loads was wrong. Support load and store of float and double. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@14360 91177308-0d34-0410-b5e6-96231b3b80d8
2004-06-24Strange as it may sound, we'll not use LDD/STD to store longs. For reasons ofBrian Gaeke
representational consistency, we want to address the halves of each 64-bit value separately. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@14356 91177308-0d34-0410-b5e6-96231b3b80d8
2004-06-24Support constant cast expressions.Brian Gaeke
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@14355 91177308-0d34-0410-b5e6-96231b3b80d8
2004-06-22Add pseudo-registers and register class for 64-bit integer values.Brian Gaeke
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@14332 91177308-0d34-0410-b5e6-96231b3b80d8
2004-06-21Order #includes as per style guide.Misha Brukman
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@14305 91177308-0d34-0410-b5e6-96231b3b80d8
2004-06-20Move the IntrinsicLowering header into the CodeGen directory, as per PR346Chris Lattner
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@14266 91177308-0d34-0410-b5e6-96231b3b80d8
2004-06-18.zero doesn't work in the Solaris assembler.Brian Gaeke
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@14231 91177308-0d34-0410-b5e6-96231b3b80d8
2004-06-18Get rid of selects the easy wayBrian Gaeke
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@14230 91177308-0d34-0410-b5e6-96231b3b80d8
2004-06-18Make visitAllocaInst() look more like its X86 counterpart.Brian Gaeke
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@14229 91177308-0d34-0410-b5e6-96231b3b80d8
2004-06-18Mess around with allocation order. In particular, I think we ought to beBrian Gaeke
using the local & in regs first because they are not clobbered by calls. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@14228 91177308-0d34-0410-b5e6-96231b3b80d8
2004-06-18JMPL has a delay slot.Brian Gaeke
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@14227 91177308-0d34-0410-b5e6-96231b3b80d8
2004-06-18Clean up the commented-out F3_3 stuff.Brian Gaeke
Replace it with a working class for FP instrs. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@14226 91177308-0d34-0410-b5e6-96231b3b80d8
2004-06-18Fix jmpl.Brian Gaeke
Add some FP moves. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@14225 91177308-0d34-0410-b5e6-96231b3b80d8
2004-06-18Support printing base+offset pairs where the offset is a register.Brian Gaeke
Use this for printing the jmpl indirect-call instruction. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@14224 91177308-0d34-0410-b5e6-96231b3b80d8
2004-06-18Support intrinsic calls (although no particular intrinsics are supported yet).Brian Gaeke
Support indirect calls. Support returning a float value. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@14223 91177308-0d34-0410-b5e6-96231b3b80d8
2004-06-18Add load instructions for floating-point registers.Brian Gaeke
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@14217 91177308-0d34-0410-b5e6-96231b3b80d8
2004-06-18Support alloca instructions.Brian Gaeke
Support copying floating-point constants to registers. Add assertion to visitCallInst to abort if we hit a NULL calledFunction, for now. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@14216 91177308-0d34-0410-b5e6-96231b3b80d8
2004-06-17Make storeRegToStackSlot slightly shorter.Brian Gaeke
Make copyRegToReg return 1 instead of -1. Edit a comment in emitPrologue(). git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@14211 91177308-0d34-0410-b5e6-96231b3b80d8
2004-06-17Set the isBranch and isTerminator flags on branch instructions correctly.Brian Gaeke
Add a FIXME about the (currently unused) JMPL instructions. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@14210 91177308-0d34-0410-b5e6-96231b3b80d8
2004-06-17Emit stores correctly; don't fail an assertion.Brian Gaeke
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@14209 91177308-0d34-0410-b5e6-96231b3b80d8
2004-06-17Support generating machine instructions for Phi nodes (based on x86, but withBrian Gaeke
modifications for 1 LLVM BB --> many MBBs). Fix store operand order: make it always be Base, Offset, SrcReg (think "[ Base + Offset ] = SrcReg"). Rewrite visitBranchInst() to be even dumber (but working) -- give up on the branch fallthrough trick, for the time being. Make visitSetCondInst() work. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@14208 91177308-0d34-0410-b5e6-96231b3b80d8
2004-06-17Recognize more branches.Brian Gaeke
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@14207 91177308-0d34-0410-b5e6-96231b3b80d8
2004-06-17Use addGlobalAddress and addMBB for call & branch targets instead of addPCDisp.Brian Gaeke
Abort if we see a PCRelativeDisp MachineOperand, to be safe. This matches the X86 backend. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@14202 91177308-0d34-0410-b5e6-96231b3b80d8
2004-06-17Rename Type::PrimitiveID to TypeId and ::getPrimitiveID() to ::getTypeID()Chris Lattner
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@14201 91177308-0d34-0410-b5e6-96231b3b80d8
2004-06-15Fix thinko in visitor... ShiftInsts should currently be delegatedBrian Gaeke
to visitBinaryOperator. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@14182 91177308-0d34-0410-b5e6-96231b3b80d8
2004-06-15I think we'll use the standard lowering passes for now.Brian Gaeke
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@14179 91177308-0d34-0410-b5e6-96231b3b80d8
2004-06-15Fix bug generating code for void call instructions: don't callBrian Gaeke
getReg() on void value. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@14178 91177308-0d34-0410-b5e6-96231b3b80d8
2004-06-15Squash a warning from the Solaris assembler by aligning the stackBrian Gaeke
on a double-word boundary instead of a single-word boundary. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@14177 91177308-0d34-0410-b5e6-96231b3b80d8
2004-06-15Allow special-casing of operand printing based on opcode. PrintBrian Gaeke
non-register, non-immed. arguments to SETHI and OR using %hi() and %lo() respectively. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@14176 91177308-0d34-0410-b5e6-96231b3b80d8
2004-06-15Support constant GEP expressions.Brian Gaeke
Support copying long constants to register pairs. Support copying ConstantPointerNulls and ConstantPointerRefs to registers. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@14175 91177308-0d34-0410-b5e6-96231b3b80d8
2004-06-02Adjust to new TM interfacesChris Lattner
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@13949 91177308-0d34-0410-b5e6-96231b3b80d8
2004-05-08Add support for widening integral casts.Brian Gaeke
Flesh out the SetCC support... which currently ends in a little bit of unfinished code (which is probably completely hilarious) for generating the condition value splitting the basic block up into 4 blocks, like this (clearly a better API is needed for this!): BB cond. branch / / R1=1 R2=0 \ / \ / R=phi(R1,R2) Other minor edits. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@13423 91177308-0d34-0410-b5e6-96231b3b80d8