| Commit message (Collapse) | Author | Age | Files | Lines |
|
|
|
| |
llvm-svn: 16267
|
|
|
|
| |
llvm-svn: 16245
|
|
|
|
| |
llvm-svn: 16138
|
|
|
|
| |
llvm-svn: 14960
|
|
|
|
|
|
|
|
| |
Support single-fp incoming args.
Support single-fp outgoing args ('call' operands).
Support double-fp return values.
llvm-svn: 14880
|
|
|
|
| |
llvm-svn: 14687
|
|
|
|
|
|
| |
Fix typo in comment.
llvm-svn: 14684
|
|
|
|
|
|
|
|
| |
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
|
|
|
|
| |
llvm-svn: 14681
|
|
|
|
| |
llvm-svn: 14625
|
|
|
|
| |
llvm-svn: 14512
|
|
|
|
| |
llvm-svn: 14508
|
|
|
|
|
|
|
|
|
|
| |
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
|
|
|
|
|
|
| |
(It's not yet clear how to copy doubles from register to register.)
llvm-svn: 14371
|
|
|
|
|
|
| |
Compactify the code that emits copies of constant ints into registers.
llvm-svn: 14365
|
|
|
|
|
|
|
|
|
|
| |
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
|
|
|
|
|
|
|
|
|
| |
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
|
|
|
|
|
|
|
| |
representational consistency, we want to address the halves of each 64-bit value
separately.
llvm-svn: 14356
|
|
|
|
| |
llvm-svn: 14355
|
|
|
|
| |
llvm-svn: 14266
|
|
|
|
| |
llvm-svn: 14229
|
|
|
|
|
|
|
| |
Support indirect calls.
Support returning a float value.
llvm-svn: 14223
|
|
|
|
|
|
|
| |
Support copying floating-point constants to registers.
Add assertion to visitCallInst to abort if we hit a NULL calledFunction, for now.
llvm-svn: 14216
|
|
|
|
|
|
|
|
|
|
|
| |
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
|
|
|
|
|
|
|
| |
Abort if we see a PCRelativeDisp MachineOperand, to be safe. This matches
the X86 backend.
llvm-svn: 14202
|
|
|
|
| |
llvm-svn: 14201
|
|
|
|
|
|
| |
to visitBinaryOperator.
llvm-svn: 14182
|
|
|
|
|
|
| |
getReg() on void value.
llvm-svn: 14178
|
|
|
|
|
|
|
| |
Support copying long constants to register pairs.
Support copying ConstantPointerNulls and ConstantPointerRefs to registers.
llvm-svn: 14175
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
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
|
|
|
|
| |
llvm-svn: 13421
|
|
|
|
|
|
|
|
|
| |
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
|
|
|
|
|
|
|
|
| |
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
|
|
|
|
| |
llvm-svn: 12903
|
|
|
|
| |
llvm-svn: 12758
|
|
|
|
|
|
|
| |
function prologues, and fix an off-by-one in visitCallInst that was
putting call args into the wrong registers.
llvm-svn: 12757
|
|
|
|
|
|
|
| |
trying to get incoming args off the stack, instead of the %i0...%i6 regs,
which is wrong.
llvm-svn: 12756
|
|
|
|
|
|
|
| |
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
|
|
|
|
| |
llvm-svn: 12743
|
|
|
|
| |
llvm-svn: 12740
|
|
|
|
| |
llvm-svn: 12737
|
|
|
|
|
|
|
| |
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
|
|
|
|
|
|
| |
Don't put NOPs in delay slots at all. We'll have a fix-up pass later.
llvm-svn: 12725
|
|
|
|
| |
llvm-svn: 12629
|
|
|
|
| |
llvm-svn: 12453
|
|
|
|
|
|
| |
Add handling for Mul instruction.
llvm-svn: 12450
|
|
|
|
| |
llvm-svn: 12255
|
|
|
|
|
|
|
| |
Emit RETL instruction to return instead of funny JMPL.
Fix indentation.
llvm-svn: 12186
|
|
|
|
| |
llvm-svn: 12111
|
|
|
|
| |
llvm-svn: 12107
|