| Commit message (Collapse) | Author | Age | Files | Lines |
... | |
|
|
|
| |
llvm-svn: 42699
|
|
|
|
| |
llvm-svn: 42624
|
|
|
|
|
|
| |
instructions reverse map.
llvm-svn: 42509
|
|
|
|
| |
llvm-svn: 42459
|
|
|
|
|
|
|
|
| |
other than PPC64. Instead of fixing it, just remove it and fix all the
places that use it to use TargetData::getPointerSize() instead, as there
aren't very many. Most of the references were in DwarfWriter.cpp.
llvm-svn: 42419
|
|
|
|
| |
llvm-svn: 42417
|
|
|
|
|
|
|
|
| |
where reg to reg copies are not possible, this returns another register class which registers in the specified register class can be copied to (and copy back from).
- X86 copyRegToReg() now supports copying between EFLAGS and GR32 / GR64 registers.
llvm-svn: 42372
|
|
|
|
|
|
| |
Tested with "make check"!
llvm-svn: 42346
|
|
|
|
| |
llvm-svn: 42332
|
|
|
|
| |
llvm-svn: 42323
|
|
|
|
|
|
|
|
| |
dependency). These are a bunch of instructions that are duplicated so the x86 backend can support both the old and new schemes at the same time. They will be deleted after
all the kinks are worked out.
llvm-svn: 42285
|
|
|
|
|
|
| |
code that creates the label too.
llvm-svn: 42265
|
|
|
|
| |
llvm-svn: 42162
|
|
|
|
| |
llvm-svn: 42147
|
|
|
|
|
|
|
| |
tables so that they are eligible for reload/remat folding. And add
entries for JMP and CALL.
llvm-svn: 42094
|
|
|
|
|
|
|
|
|
| |
and storeRegToStackSlot. Evan and I concluded this
should never be needed and it appears to be true.
(It if is needed, adjustment would be needed for
long double to work.)
llvm-svn: 42049
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
double from some of the many places in the optimizers
it appears, and do something reasonable with x86
long double.
Make APInt::dump() public, remove newline, use it to
dump ConstantSDNode's.
Allow APFloats in FoldingSet.
Expand X86 backend handling of long doubles (conversions
to/from int, mostly).
llvm-svn: 41967
|
|
|
|
|
|
|
| |
isRegister, isImmediate, and isMachineBasicBlock, which are equivalent,
and more popular.
llvm-svn: 41958
|
|
|
|
|
|
|
| |
instruction. These are implemented with xor which will modify the conditional
code. They should be rematerialized as move instructions.
llvm-svn: 41802
|
|
|
|
|
|
| |
Patch by Sterling Stein!
llvm-svn: 41758
|
|
|
|
|
|
| |
rematerialized loads to be folded into their uses.
llvm-svn: 41599
|
|
|
|
|
|
|
|
| |
in the trampoline lowering. Lookup the jump and
mov opcodes for the trampoline rather than hard
coding them.
llvm-svn: 41577
|
|
|
|
|
|
| |
instructions.
llvm-svn: 40538
|
|
|
|
|
|
| |
Pretty hackish, but code itself is dirty mess, so we won't make anything worse. :)
llvm-svn: 40472
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
InOperandList. This gives one piece of important information: # of results
produced by an instruction.
An example of the change:
def ADD32rr : I<0x01, MRMDestReg, (ops GR32:$dst, GR32:$src1, GR32:$src2),
"add{l} {$src2, $dst|$dst, $src2}",
[(set GR32:$dst, (add GR32:$src1, GR32:$src2))]>;
=>
def ADD32rr : I<0x01, MRMDestReg, (outs GR32:$dst), (ins GR32:$src1, GR32:$src2),
"add{l} {$src2, $dst|$dst, $src2}",
[(set GR32:$dst, (add GR32:$src1, GR32:$src2))]>;
llvm-svn: 40033
|
|
|
|
| |
llvm-svn: 40028
|
|
|
|
|
|
| |
previous instruction updates esp, fold it in.
llvm-svn: 40018
|
|
|
|
| |
llvm-svn: 39984
|
|
|
|
| |
llvm-svn: 39978
|
|
|
|
|
|
| |
callee-saved portion) is zero. Thanks Dan.
llvm-svn: 39974
|
|
|
|
| |
llvm-svn: 39967
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
This patch fills the last necessary bits to enable exceptions
handling in LLVM. Currently only on x86-32/linux.
In fact, this patch adds necessary intrinsics (and their lowering) which
represent really weird target-specific gcc builtins used inside unwinder.
After corresponding llvm-gcc patch will land (easy) exceptions should be
more or less workable. However, exceptions handling support should not be
thought as 'finished': I expect many small and not so small glitches
everywhere.
llvm-svn: 39855
|
|
|
|
|
|
|
|
|
| |
in addition to the intrinsic forms. Add spill-folding entries for these new
instructions, and for the scalar min and max instrinsic instructions which
were missing. And add some preliminary ISelLowering code for using the new
non-intrinsic vector sqrt instruction, and fneg and fabs.
llvm-svn: 38478
|
|
|
|
|
|
| |
their names are changed.
llvm-svn: 37876
|
|
|
|
|
|
|
| |
model to include f32 variants. Some factoring
improvments forthcoming.
llvm-svn: 37847
|
|
|
|
|
|
|
|
|
|
| |
1. Fix PR1380
2. Apply Duncan's patch from PR1410
3. Insert workaround for "one personality function per module" as noted in PR1414
4. Emit correct debug frames for x86/linux. This partly fixes DebugInfo/2006-11-06-StackTrace.cpp: stack trace is
shown correctly, but arguments for function on top of stack are displayed incorrectly.
llvm-svn: 37015
|
|
|
|
|
|
|
|
| |
Shootout-C++/except to pass on x86/linux
with non-llvm-compiled (e.g. "native") unwind runtime.
llvm-svn: 36647
|
|
|
|
| |
llvm-svn: 36646
|
|
|
|
| |
llvm-svn: 36626
|
|
|
|
|
|
| |
add / sub instructions.
llvm-svn: 36456
|
|
|
|
|
|
| |
when promoted to 64-bits
llvm-svn: 36442
|
|
|
|
| |
llvm-svn: 36425
|
|
|
|
| |
llvm-svn: 36423
|
|
|
|
| |
llvm-svn: 36406
|
|
|
|
|
|
| |
it is defined in.
llvm-svn: 36196
|
|
|
|
|
|
|
| |
Also, fixed static case in presence of eax livin. This fixes PR331
PS: Why don't we still have push/pop instructions? :)
llvm-svn: 36195
|
|
|
|
| |
llvm-svn: 35617
|
|
|
|
| |
llvm-svn: 35205
|
|
|
|
|
|
| |
moves, loads, etc. are recognized.
llvm-svn: 35031
|
|
|
|
| |
llvm-svn: 34707
|