| Commit message (Collapse) | Author | Age | Files | Lines |
... | |
|
|
|
|
|
|
|
|
| |
For example, ".byte 256" would previously assert() when emitting an object
file. Now it generates a diagnostic that the literal value is out of range.
rdar://9686950
llvm-svn: 134069
|
|
|
|
| |
llvm-svn: 134055
|
|
|
|
|
|
| |
MCInstrItineraries) into MC.
llvm-svn: 134049
|
|
|
|
|
|
|
|
|
| |
Move the target-specific RecordRelocation logic out of the generic MC
MachObjectWriter and into the target-specific object writers. This allows
nuking quite a bit of target knowledge from the supposedly target-independent
bits in lib/MC.
llvm-svn: 133844
|
|
|
|
| |
llvm-svn: 133815
|
|
|
|
|
|
| |
rdar://9667872
llvm-svn: 133808
|
|
|
|
| |
llvm-svn: 133770
|
|
|
|
|
|
| |
-Wshorten-64-to-32 warning in Instructions.h.
llvm-svn: 133708
|
|
|
|
| |
llvm-svn: 133707
|
|
|
|
| |
llvm-svn: 133706
|
|
|
|
|
|
|
|
|
| |
"Reinstate r133435 and r133449 (reverted in r133499) now that the clang
self-hosted build failure has been fixed (r133512)."
Due to some additional warnings.
llvm-svn: 133700
|
|
|
|
|
|
| |
supports compact unwind info instead of having a separate flag indicating this.
llvm-svn: 133685
|
|
|
|
|
|
| |
be emitted in a compact way, we then default to emitting a CIE and FDE.
llvm-svn: 133676
|
|
|
|
| |
llvm-svn: 133668
|
|
|
|
|
|
|
| |
line with LLVM's general coding style.
No functionality change.
llvm-svn: 133645
|
|
|
|
| |
llvm-svn: 133473
|
|
|
|
| |
llvm-svn: 133352
|
|
|
|
| |
llvm-svn: 133349
|
|
|
|
|
|
| |
* Make this used only if CFI is used.
llvm-svn: 133319
|
|
|
|
| |
llvm-svn: 133314
|
|
|
|
| |
llvm-svn: 133299
|
|
|
|
| |
llvm-svn: 133297
|
|
|
|
|
|
|
| |
the correct values, etc. In particular, the exception handling type is SjLj, not
ARM.
llvm-svn: 133296
|
|
|
|
| |
llvm-svn: 133293
|
|
|
|
| |
llvm-svn: 133292
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
The LSDA is a bit difficult for the non-initiated to read. Even with comments,
it's not always clear what's going on. This wraps the ASM streamer in a class
that retains the LSDA and then emits a human-readable description of what's
going on in it.
So instead of having to make sense of:
Lexception1:
.byte 255
.byte 155
.byte 168
.space 1
.byte 3
.byte 26
Lset0 = Ltmp7-Leh_func_begin1
.long Lset0
Lset1 = Ltmp812-Ltmp7
.long Lset1
Lset2 = Ltmp913-Leh_func_begin1
.long Lset2
.byte 3
Lset3 = Ltmp812-Leh_func_begin1
.long Lset3
Lset4 = Leh_func_end1-Ltmp812
.long Lset4
.long 0
.byte 0
.byte 1
.byte 0
.byte 2
.byte 125
.long __ZTIi@GOTPCREL+4
.long __ZTIPKc@GOTPCREL+4
you can read this instead:
## Exception Handling Table: Lexception1
## @LPStart Encoding: omit
## @TType Encoding: indirect pcrel sdata4
## @TType Base: 40 bytes
## @CallSite Encoding: udata4
## @Action Table Size: 26 bytes
## Action 1:
## A throw between Ltmp7 and Ltmp812 jumps to Ltmp913 on an exception.
## For type(s): __ZTIi@GOTPCREL+4 __ZTIPKc@GOTPCREL+4
## Action 2:
## A throw between Ltmp812 and Leh_func_end1 does not have a landing pad.
llvm-svn: 133286
|
|
|
|
| |
llvm-svn: 133272
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Re-apply 133010, with fixes for inline assembler.
Original commit message:
"When an assembler local symbol is used but not defined in a module, a
Darwin assembler wants to issue a diagnostic to that effect."
Added fix to only perform the check when finalizing, as otherwise we're not
done and undefined symbols may simply not have been encountered yet.
Passes "make check" and a self-host check on Darwin.
llvm-svn: 133071
|
|
|
|
|
|
|
| |
Apparently llvm itself generates undefined assembler local labels, causing
self-hosting problems with this patch. Reverting until that's sorted out.
llvm-svn: 133013
|
|
|
|
|
|
|
|
|
| |
When an assembler local symbol is used but not defined in a module, a
Darwin assembler wants to issue a diagnostic to that effect.
rdar://9559714
llvm-svn: 133010
|
|
|
|
|
|
|
|
| |
VK_PPC_{HA,LO}16 into darwin and gas variants.
Darwin wants {ha,lo}16(symbol) while gnu as wants symbol@{ha,l}.
llvm-svn: 132802
|
|
|
|
|
|
| |
switch. (face+palm)
llvm-svn: 132790
|
|
|
|
| |
llvm-svn: 132715
|
|
|
|
|
|
|
|
|
|
|
| |
We still don't handle
* default values
* :req
* :vararg
* \()
llvm-svn: 132656
|
|
|
|
|
|
|
|
|
|
| |
VK_GOTOFF reloc. This matches as' behavior, but it is not clear why the linker
might need this, so I added a FIXME.
I could test this by duplicating test/MC/ELF/got.s, but it doesn't look
worthwhile.
llvm-svn: 132655
|
|
|
|
| |
llvm-svn: 132643
|
|
|
|
|
|
|
|
|
|
| |
Parsing a register name/number for .cfi directives can't assume that a
register name starts with a '%' token. Be more flexible and check for a
register number instead. Still unlikely to be perfect, but it allows us
to parse both plain identifiers as register names and integers as register
numbers, which is what we're wanting to support at this point.
llvm-svn: 132466
|
|
|
|
| |
llvm-svn: 132451
|
|
|
|
| |
llvm-svn: 132395
|
|
|
|
|
|
|
|
| |
directives.
Fixes PR9826.
llvm-svn: 132317
|
|
|
|
|
|
|
|
|
|
| |
suffix (e.g. .xdata$myfunc). The suffix part isn't implemented yet, but
I'll get to it in the next patch.
Fix up all callers of the affected functions. Make them pass said suffix to
the function.
llvm-svn: 132205
|
|
|
|
|
|
|
|
|
|
| |
- Flip order of bitfields. This gets our output matching GAS.
- Handle case where the end of the prolog wasn't specified.
- If the resulting unwind info struct is less than 8 bytes, pad to 8 bytes.
Add a test for the latter two.
llvm-svn: 132188
|
|
|
|
|
|
|
| |
Use them to calculate the offset inside the prolog. Emit this value when
emitting the unwind codes.
llvm-svn: 132177
|
|
|
|
|
|
|
|
| |
to 4 bytes.
I'm surprised no one caught the missing break statements.
llvm-svn: 132176
|
|
|
|
|
|
|
|
| |
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
|
|
|
|
|
|
|
|
|
|
| |
them.
I had to add a special SwitchSectionNoChange method to MCStreamer just for
.seh_handlerdata. If this isn't OK, please let me know, and I'll find some
other way to fix .seh_handlerdata streaming.
llvm-svn: 132084
|
|
|
|
|
|
| |
buggy methods that parse these directives.
llvm-svn: 132045
|
|
|
|
|
|
| |
one I found by inspection).
llvm-svn: 132037
|