- Jun 19, 2009
-
-
Eli Friedman authored
Patch by Benedict Gaster. llvm-svn: 73753
-
Chris Lattner authored
llvm-svn: 73744
-
Chris Lattner authored
implementation. The idea is that we want asmprinting to work by converting MachineInstrs into a new MCInst class, then the per-instruction asmprinter works on MCInst. MCInst and the new asmprinters will not depend on most of the llvm code generators. This allows building diassemblers that don't link in the whole llvm code generator. This is step #1 of many. llvm-svn: 73743
-
Chris Lattner authored
into DarwinTargetAsmInfo.cpp. The remaining differences should be evaluated. It seems strange that x86/arm has .zerofill but ppc doesn't, etc. llvm-svn: 73742
-
Chris Lattner authored
llvm-svn: 73738
-
Chris Lattner authored
llvm-svn: 73737
-
Chris Lattner authored
llvm-svn: 73736
-
- Jun 18, 2009
-
-
Evan Cheng authored
On Darwin, ams printer should output a second label before a jump table so the linker knows it's a new atom. But this is only needed if the jump table is put in a separate section from the function body. llvm-svn: 73720
-
- Jun 17, 2009
-
-
Devang Patel authored
Do not use first actual instruction's location for prologue. The debug wants to skip prologue while setting a breakpoint for the function. llvm-svn: 73592
-
- Jun 16, 2009
-
-
Douglas Gregor authored
initialization of all targets (InitializeAllTargets.h) or assembler printers (InitializeAllAsmPrinters.h). This is a step toward the elimination of relinked object files, so that we can build normal archives. llvm-svn: 73543
-
Evan Cheng authored
llvm-svn: 73536
-
Eli Friedman authored
llvm-svn: 73476
-
Chris Lattner authored
llvm-svn: 73472
-
Chris Lattner authored
llvm-svn: 73471
-
Bill Wendling authored
llvm-svn: 73468
-
Bill Wendling authored
comes after the DW_CFA_def_cfa_register, because the CFA is really ESP from the start of the function and only gets an offset when the "subl $xxx,%esp" instruction happens, not the other way around. And reapply r72898: The DWARF unwind info was incorrect. While compiling with `-fomit-frame-pointer', we would lack the DW_CFA_advance_loc information for a lot of function, and then they would be `0'. The linker (at least on Darwin) needs to encode the stack size. In some cases, the stack size is too large to directly encode. So the linker checks to see if there is a "subl $xxx,%esp" instruction at the point where the `DW_CFA_def_cfa_offset' says the pc was. If so, the compact encoding records the offset in the function to where the stack size is embedded. But because the `DW_CFA_advance_loc' instructions are missing, it looks before the function and dies. So, instead of emitting the EH debug label before the stack adjustment operations, emit it afterwards, right before the frame move stuff. llvm-svn: 73465
-
- Jun 15, 2009
-
-
Bill Wendling authored
llvm-svn: 73417
-
Bill Wendling authored
that push immediate operands of 1, 2, and 4 bytes (extended to the native register size in each case). The assembly mnemonics are "pushl" and "pushq." One such instruction appears at the beginning of the "start" function , so this is essential for accurate disassembly when unwinding." Patch by Sean Callanan! llvm-svn: 73407
-
Chris Lattner authored
llvm-svn: 73373
-
Chris Lattner authored
llvm-svn: 73372
-
Chris Lattner authored
llvm-svn: 73366
-
- Jun 12, 2009
-
-
Arnold Schwaighofer authored
out of sync with regular cc. The only difference between the tail call cc and the normal cc was that one parameter register - R9 - was reserved for calling functions through a function pointer. After time the tail call cc has gotten out of sync with the regular cc. We can use R11 which is also caller saved but not used as parameter register for potential function pointers and remove the special tail call cc on x86-64. llvm-svn: 73233
-
Eli Friedman authored
add a few suggestions from looking at some assembly code. llvm-svn: 73210
-
Bruno Cardoso Lopes authored
llvm-svn: 73209
-
- Jun 11, 2009
-
-
Bruno Cardoso Lopes authored
Emission for globals, using the correct data sections Function alignment can be computed for each target using TargetELFWriterInfo Some small fixes llvm-svn: 73201
-
- Jun 10, 2009
-
-
Anton Korobeynikov authored
llvm-svn: 73152
-
- Jun 09, 2009
-
-
Bill Wendling authored
change. llvm-svn: 73143
-
Anton Korobeynikov authored
ABI. The missing piece is support for putting "homogeneous aggregates" into registers. Patch by Sandeep Patel! llvm-svn: 73095
-
- Jun 08, 2009
-
-
Bill Wendling authored
llvm-svn: 73075
-
- Jun 07, 2009
-
-
Eli Friedman authored
llvm-svn: 73017
-
Eli Friedman authored
on x86 to handle more cases. Fix a bug in said code that would cause it to read past the end of an object. Rewrite the code in SelectionDAGLegalize::ExpandBUILD_VECTOR to be a bit more general. Remove PerformBuildVectorCombine, which is no longer necessary with these changes. In addition to simplifying the code, with this change, we can now catch a few more cases of consecutive loads. llvm-svn: 73012
-
- Jun 06, 2009
-
-
Eli Friedman authored
llvm-svn: 72991
-
Eli Friedman authored
nodes for vectors with an i16 element type. Add an optimization for building a vector which is all zeros/undef except for the bottom element, where the bottom element is an i8 or i16. llvm-svn: 72988
-
Eli Friedman authored
llvm-svn: 72987
-
Bruno Cardoso Lopes authored
llvm-svn: 72986
-
Eli Friedman authored
llvm-svn: 72985
-
Eli Friedman authored
conversions for x86, like <2 x i32> -> <2 x float> and <4 x i16> -> <4 x float>. llvm-svn: 72983
-
Dan Gohman authored
llvm-svn: 72969
-
- Jun 05, 2009
-
-
Devang Patel authored
Update code generator to use this attribute and remove NoImplicitFloat target option. Update llc to set this attribute when -no-implicit-float command line option is used. llvm-svn: 72959
-
Nate Begeman authored
build vectors with i64 elements will only appear on 32b x86 before legalize. Since vector widening occurs during legalize, and produces i64 build_vector elements, the dag combiner is never run on these before legalize splits them into 32b elements. Teach the build_vector dag combine in x86 back end to recognize consecutive loads producing the low part of the vector. Convert the two uses of TLI's consecutive load recognizer to pass LoadSDNodes since that was required implicitly. Add a testcase for the transform. Old: subl $28, %esp movl 32(%esp), %eax movl 4(%eax), %ecx movl %ecx, 4(%esp) movl (%eax), %eax movl %eax, (%esp) movaps (%esp), %xmm0 pmovzxwd %xmm0, %xmm0 movl 36(%esp), %eax movaps %xmm0, (%eax) addl $28, %esp ret New: movl 4(%esp), %eax pmovzxwd (%eax), %xmm0 movl 8(%esp), %eax movaps %xmm0, (%eax) ret llvm-svn: 72957
-