| Commit message (Collapse) | Author | Age | Files | Lines |
... | |
|
|
|
|
|
| |
modes. These are used by disassemblers to provide better disassembly, particularly on targets like ARM Thumb that like to intermingle data in the TEXT segment.
llvm-svn: 141135
|
|
|
|
| |
llvm-svn: 138548
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
.cfi_startproc. e.g. libffi:
$ cat confopt.c
asm (".cfi_startproc\n\t.cfi_endproc");
int main () { return 0; }
Teach MC / dwarf emission to handle these cfi directives which essentially
create an empty frame.
rdar://10017184
llvm-svn: 138504
|
|
|
|
|
|
|
|
|
| |
externally visable, create a local symbol to use in the CFE. If not, use the
function label itself.
Fixes PR10420.
llvm-svn: 136716
|
|
|
|
| |
llvm-svn: 135449
|
|
|
|
|
|
|
| |
solution but it is a small step towards removing the horror that is
TargetAsmInfo.
llvm-svn: 135237
|
|
|
|
| |
llvm-svn: 132715
|
|
|
|
|
|
|
| |
Use them to calculate the offset inside the prolog. Emit this value when
emitting the unwind codes.
llvm-svn: 132177
|
|
|
|
|
|
|
|
| |
still report leaks, but they're spurious now. Valgrind cannot peer into
std::vector objects--or any dynamic array, for that matter--because it doesn't
know how big the array is.
llvm-svn: 132174
|
|
|
|
|
|
|
| |
already defined, and err when the PushMachFrame operation isn't the first
operation (if specified at all).
llvm-svn: 132173
|
|
|
|
|
|
|
|
|
|
|
| |
Rework how the MCWin64EHUnwindInfo instances are stored. Fix issues with
chained unwind areas exposed by the test that were related to this.
The ChainedParent field had the wrong address, because when the chained unwind
info was added, the addresses shifted around. Now we store the pointers to the
structures, which are now allocated from the MC heap.
llvm-svn: 132106
|
|
|
|
|
|
| |
this test.
llvm-svn: 132004
|
|
|
|
|
|
|
| |
of them, particularly the ones that don't take arguments. Also implement
.seh_proc and .seh_handler.
llvm-svn: 131866
|
|
|
|
|
|
| |
these tables.
llvm-svn: 131833
|
|
|
|
|
|
| |
Also, fix threshold for 'Big' register saves.
llvm-svn: 131830
|
|
|
|
|
|
| |
unwind areas.
llvm-svn: 131795
|
|
|
|
|
|
|
|
|
| |
and an exception handler. Handle that case.
Also, add an 'Emitted' member to the MCWin64EHUnwindInfo struct. It will be
needed later.
llvm-svn: 131791
|
|
|
|
|
|
| |
is needed for an upcoming patch.
llvm-svn: 131772
|
|
|
|
|
|
|
|
| |
There's really nothing to implement. All this really does is swap to a
pseudo-section that later gets written to the unwind info struct. That
needs to be implemented in the object streamers.
llvm-svn: 131734
|
|
|
|
|
|
|
|
|
|
| |
foo:
bar = foo
.quad bar
Avoid producing it. Fixes PR9951.
llvm-svn: 131687
|
|
|
|
|
|
|
| |
* Remove unnecessary arguments now that ForceExpAbs is a method.
* Use ForceExpAbs in EmitAbsValue.
llvm-svn: 131683
|
|
|
|
| |
llvm-svn: 131679
|
|
|
|
|
|
| |
I had to change the API slightly to avoid overloading issues.
llvm-svn: 131666
|
|
|
|
|
|
|
|
|
| |
ours compatible with GAS.
In retrospect, I should have emailed binutils about this earlier. Thanks to
Kai Tietz for pointing out that GAS already had SEH directives.
llvm-svn: 131652
|
|
|
|
| |
llvm-svn: 131629
|
|
|
|
|
|
| |
Based largely on Rafael Espindola's work on CFI. Other methods soon to follow.
llvm-svn: 131623
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
- StartChained and EndChained delimit a chained unwind area, which can contain
additional operations to be undone if an exception occurs inside of it.
- UnwindOnly declares that this function doesn't handle any exceptions. If it
has a handler, it's an unwind handler instead of an exception handler.
- Lsda declares the location and size of the LSDA, which in the Win64 EH
scheme is kept inside the UNWIND_INFO struct. Windows itself ignores the
LSDA; it's used by the Language-Specific Handler (the "Personality Function"
from DWARF).
llvm-svn: 131572
|
|
|
|
|
|
|
|
|
| |
the purposes of the Win64 EH tables, I realized we had no way to tell where
the function ends. (MASM bounds functions with PROC and ENDP keywords.)
Add a directive to delimit the end of the function, and rename the 'frame'
directive to more accurately reflect its duality with the new directive.
llvm-svn: 131522
|
|
|
|
|
|
| |
self-host :).
llvm-svn: 131421
|
|
|
|
| |
llvm-svn: 131384
|
|
|
|
|
|
| |
information.
llvm-svn: 131382
|
|
|
|
|
|
| |
one of the sections is created.
llvm-svn: 131124
|
|
|
|
| |
llvm-svn: 131121
|
|
|
|
| |
llvm-svn: 131119
|
|
|
|
| |
llvm-svn: 131117
|
|
|
|
|
|
|
|
|
|
| |
for all symbol differences and can drop the old EmitPCRelSymbolValue
method.
This also make getExprForFDESymbol on ELF equal to the one on MachO, and it
can be made non-virtual.
llvm-svn: 130634
|
|
|
|
| |
llvm-svn: 130585
|
|
|
|
| |
llvm-svn: 130397
|
|
|
|
|
|
|
|
|
|
|
|
| |
non private symbol. This will be use for handling
foo:
.cfi_startproc
...
On OS X where we have to create a foo.eh symbol.
llvm-svn: 130305
|
|
|
|
|
|
| |
each instruction.
llvm-svn: 129715
|
|
|
|
|
|
| |
Implement the ones that were missing in the asm streamer.
llvm-svn: 129413
|
|
|
|
| |
llvm-svn: 129378
|
|
|
|
| |
llvm-svn: 129362
|
|
|
|
| |
llvm-svn: 129361
|
|
|
|
|
|
|
| |
This is just very first approximation how the stuff should be done
(e.g. ARM-only for now). More to follow.
llvm-svn: 127101
|
|
|
|
|
|
| |
mode".
llvm-svn: 127099
|
|
|
|
|
|
| |
independent vectors.
llvm-svn: 126099
|
|
|
|
| |
llvm-svn: 125629
|
|
|
|
| |
llvm-svn: 122616
|
|
|
|
|
|
| |
like 6 is a fixed point of that and so the previous tests were OK :-)
llvm-svn: 122614
|