- Oct 02, 2012
-
-
Eric Christopher authored
prologue. Also skip frame setup instructions when looking for the first location. llvm-svn: 165052
-
Eric Christopher authored
llvm-svn: 165051
-
Eric Christopher authored
in the block. llvm-svn: 165050
-
- Sep 26, 2012
-
-
Bill Wendling authored
The hasFnAttr method has been replaced by querying the Attributes explicitly. No intended functionality change. llvm-svn: 164725
-
- Jul 16, 2012
-
-
Chad Rosier authored
llvm-svn: 160293
-
Alexey Samsonov authored
It is intended to fix PR11468. Old prologue and epilogue looked like this: push %rbp mov %rsp, %rbp and $alignment, %rsp push %r14 push %r15 ... pop %r15 pop %r14 mov %rbp, %rsp pop %rbp The problem was to reference the locations of callee-saved registers in exception handling: locations of callee-saved had to be re-calculated regarding the stack alignment operation. It would take some effort to implement this in LLVM, as currently MachineLocation can only have the form "Register + Offset". Funciton prologue and epilogue are now changed to: push %rbp mov %rsp, %rbp push %14 push %15 and $alignment, %rsp ... lea -$size_of_saved_registers(%rbp), %rsp pop %r15 pop %r14 pop %rbp Reviewed by Chad Rosier. llvm-svn: 160248
-
- Jul 10, 2012
-
-
Chad Rosier authored
X86MachineFunctionInfo as this is currently only used by X86. If this ever becomes an issue on another arch (e.g., ARM) then we can hoist it back out. llvm-svn: 160009
-
Chad Rosier authored
X86. Basically, this is a reapplication of r158087 with a few fixes. Specifically, (1) the stack pointer is restored from the base pointer before popping callee-saved registers and (2) in obscure cases (see comments in patch) we must cache the value of the original stack adjustment in the prologue and apply it in the epilogue. rdar://11496434 llvm-svn: 160002
-
- Jul 05, 2012
-
-
Jakob Stoklund Olesen authored
Function argument and return value registers aren't part of the encoding, so they should be implicit operands. llvm-svn: 159728
-
- Jun 22, 2012
-
-
Jakob Stoklund Olesen authored
The code in X86TargetLowering::LowerEH_RETURN() assumes that a frame pointer exists, but the frame pointer was forced by the presence of llvm.eh.unwind.init which isn't guaranteed. If llvm.eh.unwind.init is actually required in functions calling eh.return (is it?), we should diagnose that instead of emitting bad machine code. This should fix the dragonegg-x86_64-linux-gcc-4.6-test bot. llvm-svn: 158961
-
- Jun 18, 2012
-
-
Chandler Carruth authored
This patch causes problems when both dynamic stack realignment and dynamic allocas combine in the same function. With this patch, we no longer build the epilog correctly, and silently restore registers from the wrong position in the stack. Thanks to Matt for tracking this down, and getting at least an initial test case to Chad. I'm going to try to check a variation of that test case in so we can easily track the fixes required. llvm-svn: 158654
-
- Jun 06, 2012
-
-
Chad Rosier authored
X86. rdar://11496434 llvm-svn: 158087
-
- Jun 02, 2012
-
-
Jakob Stoklund Olesen authored
No functional change intended. Sorry for the churn. The iterator classes are supposed to help avoid giant commits like this one in the future. The TableGen-produced register lists are getting quite large, and it may be necessary to change the table representation. This makes it possible to do so without changing all clients (again). llvm-svn: 157854
-
- May 24, 2012
-
-
Craig Topper authored
llvm-svn: 157374
-
Chad Rosier authored
llvm-svn: 157358
-
- May 01, 2012
-
-
Alexey Samsonov authored
X86: Use StackRegister instead of FrameRegister in getFrameIndexReference (to generate debug info for local variables) if stack needs realignment llvm-svn: 155917
-
- Mar 04, 2012
-
-
Craig Topper authored
llvm-svn: 152001
-
- Feb 18, 2012
-
-
Jia Liu authored
Emacs-tag and some comment fix for all ARM, CellSPU, Hexagon, MBlaze, MSP430, PPC, PTX, Sparc, X86, XCore. llvm-svn: 150878
-
- Feb 07, 2012
-
-
Evan Cheng authored
llvm-svn: 150008
-
- Jan 20, 2012
-
-
David Blaikie authored
llvm-svn: 148578
-
- Jan 13, 2012
-
-
Bill Wendling authored
llvm-svn: 148077
-
Bill Wendling authored
The registers are placed into the saved registers list in the reverse order, which is why the original loop was written to loop backwards. llvm-svn: 148064
-
- Jan 12, 2012
-
-
Rafael Espindola authored
This patch uses tcb_spare field in the tcb structure to store info. Patch by Jyun-Yan You. llvm-svn: 148041
-
Rafael Espindola authored
Uses the pvArbitrary slot of the TIB, which is reserved for applications. We only support frames with a static size. llvm-svn: 148040
-
Benjamin Kramer authored
Restore the (obviously wrong) behavior from before r147938 without relying on undefined behavior. Add a fat FIXME note. This should fix nightly tester failures. llvm-svn: 148030
-
- Jan 11, 2012
-
-
Rafael Espindola authored
This uses TLS slot 90, which actually belongs to JavaScriptCore. We only support frames with static size Patch by Brian Anderson. llvm-svn: 147960
-
Rafael Espindola authored
Patch by Brian Anderson. llvm-svn: 147958
-
Rafael Espindola authored
This is a comparison of two addresses, and GCC does the comparison unsigned. Patch by Brian Anderson. llvm-svn: 147954
-
Rafael Espindola authored
Patch by Brian Anderson. llvm-svn: 147952
-
Jakob Stoklund Olesen authored
I don't think the compact encoding code is right, but at least is has defined behavior now. llvm-svn: 147938
-
- Dec 15, 2011
-
-
Bill Wendling authored
the compact unwind claiming that one register was saved before another, which isn't all that great in general. Process them in the natural order. Reverse the list only when necessary for the algorithm. llvm-svn: 146612
-
- Dec 07, 2011
-
-
Bill Wendling authored
llvm-svn: 146030
-
Bill Wendling authored
llvm-svn: 146029
-
Evan Cheng authored
generator to it. For non-bundle instructions, these behave exactly the same as the MC layer API. For properties like mayLoad / mayStore, look into the bundle and if any of the bundled instructions has the property it would return true. For properties like isPredicable, only return true if *all* of the bundled instructions have the property. For properties like canFoldAsLoad, isCompare, conservatively return false for bundles. llvm-svn: 146026
-
- Dec 06, 2011
-
-
Bill Wendling authored
llvm-svn: 145976
-
Bill Wendling authored
llvm-svn: 145969
-
Bill Wendling authored
* Rename variables to reflect what they're actually used for. llvm-svn: 145968
-
Bill Wendling authored
llvm-svn: 145954
-
Bill Wendling authored
llvm-svn: 145952
-
Bill Wendling authored
llvm-svn: 145896
-