summaryrefslogtreecommitdiffstats
path: root/llvm/lib/Target/SparcV8/InstSelectSimple.cpp
Commit message (Collapse)AuthorAgeFilesLines
* Renamed file to SparcV8ISelSimple.cppMisha Brukman2004-09-101-1150/+0
| | | | llvm-svn: 16267
* This file does not need <iostream>, I think.Brian Gaeke2004-09-081-1/+0
| | | | llvm-svn: 16245
* Back to compiling land for v8Brian Gaeke2004-09-021-1/+1
| | | | llvm-svn: 16138
* CPR fixesChris Lattner2004-07-181-4/+3
| | | | llvm-svn: 14960
* Do IMPLICIT_DEFs on incoming args' hard regs, to avoid confusing the regalloc.Brian Gaeke2004-07-161-10/+61
| | | | | | | | Support single-fp incoming args. Support single-fp outgoing args ('call' operands). Support double-fp return values. llvm-svn: 14880
* Support setcc on fp values.Brian Gaeke2004-07-081-12/+21
| | | | llvm-svn: 14687
* Fix bug involving bool arguments to binary operators.Brian Gaeke2004-07-081-2/+2
| | | | | | Fix typo in comment. llvm-svn: 14684
* Fix bug in copying long constants to register pairs. We were gettingBrian Gaeke2004-07-081-2/+17
| | | | | | | | the top and bottom halves backwards...how embarrassing. Support 'cast long to long' and other similar no-op casts to long. Support 'ret long'. llvm-svn: 14683
* Support 'ret float'Brian Gaeke2004-07-081-0/+3
| | | | llvm-svn: 14681
* Add #includesChris Lattner2004-07-041-0/+1
| | | | llvm-svn: 14625
* Fix indentation to be 2 spaces.Misha Brukman2004-06-301-8/+8
| | | | llvm-svn: 14512
* visitSetCondInst() takes a parameter of type `SetCondInst'Misha Brukman2004-06-301-2/+2
| | | | llvm-svn: 14508
* Trim whitespace.Brian Gaeke2004-06-271-13/+56
| | | | | | | | | | 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. llvm-svn: 14440
* Support cast float to float, cast double to float, and cast float to double.Brian Gaeke2004-06-241-10/+27
| | | | | | (It's not yet clear how to copy doubles from register to register.) llvm-svn: 14371
* Fix a dyn_cast in copyConstantToRegister which should have been a cast.Brian Gaeke2004-06-241-19/+16
| | | | | | Compactify the code that emits copies of constant ints into registers. llvm-svn: 14365
* Use correct add*Imm form in more BuildMI calls.Brian Gaeke2004-06-241-18/+26
| | | | | | | | | | 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. llvm-svn: 14363
* Rename the load and store opcodes. The non-fp ones only have oneBrian Gaeke2004-06-241-16/+40
| | | | | | | | | 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. llvm-svn: 14360
* Strange as it may sound, we'll not use LDD/STD to store longs. For reasons ofBrian Gaeke2004-06-241-2/+4
| | | | | | | representational consistency, we want to address the halves of each 64-bit value separately. llvm-svn: 14356
* Support constant cast expressions.Brian Gaeke2004-06-241-17/+43
| | | | llvm-svn: 14355
* Move the IntrinsicLowering header into the CodeGen directory, as per PR346Chris Lattner2004-06-201-1/+1
| | | | llvm-svn: 14266
* Make visitAllocaInst() look more like its X86 counterpart.Brian Gaeke2004-06-181-3/+11
| | | | llvm-svn: 14229
* Support intrinsic calls (although no particular intrinsics are supported yet).Brian Gaeke2004-06-181-4/+22
| | | | | | | Support indirect calls. Support returning a float value. llvm-svn: 14223
* Support alloca instructions.Brian Gaeke2004-06-181-0/+32
| | | | | | | Support copying floating-point constants to registers. Add assertion to visitCallInst to abort if we hit a NULL calledFunction, for now. llvm-svn: 14216
* Support generating machine instructions for Phi nodes (based on x86, but withBrian Gaeke2004-06-171-52/+178
| | | | | | | | | | | 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. llvm-svn: 14208
* Use addGlobalAddress and addMBB for call & branch targets instead of addPCDisp.Brian Gaeke2004-06-171-5/+5
| | | | | | | Abort if we see a PCRelativeDisp MachineOperand, to be safe. This matches the X86 backend. llvm-svn: 14202
* Rename Type::PrimitiveID to TypeId and ::getPrimitiveID() to ::getTypeID()Chris Lattner2004-06-171-1/+1
| | | | llvm-svn: 14201
* Fix thinko in visitor... ShiftInsts should currently be delegatedBrian Gaeke2004-06-151-1/+2
| | | | | | to visitBinaryOperator. llvm-svn: 14182
* Fix bug generating code for void call instructions: don't callBrian Gaeke2004-06-151-2/+2
| | | | | | getReg() on void value. llvm-svn: 14178
* Support constant GEP expressions.Brian Gaeke2004-06-151-21/+52
| | | | | | | Support copying long constants to register pairs. Support copying ConstantPointerNulls and ConstantPointerRefs to registers. llvm-svn: 14175
* Add support for widening integral casts.Brian Gaeke2004-05-081-34/+76
| | | | | | | | | | | | | | | | | | 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. llvm-svn: 13423
* Flesh out GEP supportBrian Gaeke2004-05-081-3/+53
| | | | llvm-svn: 13421
* Add stub support for GEPs.Brian Gaeke2004-05-081-8/+90
| | | | | | | | | Add support for branches (based loosely on X86/InstSelectSimple). Add support for not visiting phi nodes in the first pass. Add support for loading bools. Flesh out support for stores. llvm-svn: 13418
* Add support for copying bool constants to registers.Brian Gaeke2004-05-071-8/+36
| | | | | | | | Disable the code that copies long constants to registers - it looks fishy. Implement some simple casts: integral, smaller than longs, and equal-width or narrowing only. llvm-svn: 13413
* I started working on casts, but I don't have anything compilable yet.Brian Gaeke2004-04-131-0/+11
| | | | llvm-svn: 12903
* First version of code to handle loads. Stub function for handling stores.Brian Gaeke2004-04-071-1/+39
| | | | llvm-svn: 12758
* Support loading arguments from %I0...%I5 into virtual registers inBrian Gaeke2004-04-071-3/+30
| | | | | | | function prologues, and fix an off-by-one in visitCallInst that was putting call args into the wrong registers. llvm-svn: 12757
* It's setting up the call args right now, but on the callee side, it'sBrian Gaeke2004-04-071-1/+13
| | | | | | | trying to get incoming args off the stack, instead of the %i0...%i6 regs, which is wrong. llvm-svn: 12756
* This is a start on handling setcc instructions. As the comment notes, weChris Lattner2004-04-071-0/+35
| | | | | | | have no good way of handling this until the code generator is improved. We should probably just emit V9 instructions in the meantime. llvm-svn: 12745
* Avoid emitting an extra copy on each 32-bit operationChris Lattner2004-04-071-4/+11
| | | | llvm-svn: 12743
* Add support for shift instructions, wrap some long linesChris Lattner2004-04-071-15/+24
| | | | llvm-svn: 12740
* Add a bunch more instructionsChris Lattner2004-04-071-23/+43
| | | | llvm-svn: 12737
* Preliminary support for getting 64-bit integer constants into registers.Brian Gaeke2004-04-071-2/+27
| | | | | | | Preliminary support for division. It's gross because you have to initialize the "Y" register, which is the top 32 bits of the thing you're dividing. llvm-svn: 12732
* Deal with call return values.Brian Gaeke2004-04-061-1/+15
| | | | | | Don't put NOPs in delay slots at all. We'll have a fix-up pass later. llvm-svn: 12725
* Add support for call instructions (0-ary only for now).Brian Gaeke2004-04-021-1/+7
| | | | llvm-svn: 12629
* Fix bug in zero-extending of shorts.Brian Gaeke2004-03-161-2/+2
| | | | llvm-svn: 12453
* Make getClass more robust by adding cLong.Brian Gaeke2004-03-161-1/+7
| | | | | | Add handling for Mul instruction. llvm-svn: 12450
* Hmm, who left this sitting around in my treeBrian Gaeke2004-03-091-4/+4
| | | | llvm-svn: 12255
* Support return values of basic integer types.Brian Gaeke2004-03-061-24/+37
| | | | | | | Emit RETL instruction to return instead of funny JMPL. Fix indentation. llvm-svn: 12186
* Subtract instructions; minor cleanupsBrian Gaeke2004-03-041-4/+6
| | | | llvm-svn: 12111
* Simple copyConstantToReg support, SETHIi and ORriBrian Gaeke2004-03-041-4/+20
| | | | llvm-svn: 12107
OpenPOWER on IntegriCloud