|  | Commit message (Collapse) | Author | Age | Files | Lines | 
|---|
| ... |  | 
| | 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| | Use a dedicated MachO load command to annotate data-in-code regions.
This is the same format the linker produces for final executable images,
allowing consistency of representation and use of introspection tools
for both object and executable files.
Data-in-code regions are annotated via ".data_region"/".end_data_region"
directive pairs, with an optional region type.
data_region_directive := ".data_region" { region_type }
region_type := "jt8" | "jt16" | "jt32" | "jta32"
end_data_region_directive := ".end_data_region"
The previous handling of ARM-style "$d.*" labels was broken and has
been removed. Specifically, it didn't handle ARM vs. Thumb mode when
marking the end of the section.
rdar://11459456
llvm-svn: 157062 | 
| | 
| 
| 
| | llvm-svn: 156716 | 
| | 
| 
| 
| 
| 
| | for nesting.
llvm-svn: 156714 | 
| | 
| 
| 
| | llvm-svn: 156712 | 
| | 
| 
| 
| 
| 
| | Based on a patch by Team PaX.
llvm-svn: 156709 | 
| | 
| 
| 
| 
| 
| 
| 
| | unsupported.
Patch by Team PaX!
llvm-svn: 156708 | 
| | 
| 
| 
| | llvm-svn: 156707 | 
| | 
| 
| 
| 
| 
| | Based on a patch from PaX Team.
llvm-svn: 156706 | 
| | 
| 
| 
| 
| 
| | Based on a patch from PaX Team.
llvm-svn: 156705 | 
| | 
| 
| 
| | llvm-svn: 156602 | 
| | 
| 
| 
| | llvm-svn: 156241 | 
| | 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| | Previously, an unsupported/unknown assembler directive issued a warning.
That's generally unsafe, and inconsistent with the behaviour of pretty
much every system assembler. Now that the MC assemblers are mature
enough to be the default on multiple targets, it's reasonable to
issue errors for these.
For target or platform directives that need to stay warnings, we
should add explicit handlers for them in, e.g., ELFAsmParser.cpp,
DarwinAsmParser.cpp, et. al., and issue the warning there.
rdar://9246275
llvm-svn: 155926 | 
| | 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| | The caller is already responsible for eating any additional input on the
line. Putting an additional EatToEndOfStatement() in ParseStatement()
causes an entire extra statement to be consumed when treating warnings
as errors. For example, test/MC/macros.s will assert() because the
.endmacro directive is missed as a result.
rdar://11355843
llvm-svn: 155925 | 
| | 
| 
| 
| 
| 
| 
| 
| 
| | A trailing comma means no argument at all (i.e., as if the comma were not
present), not an empty argument to the invokee.
rdar://11252521
llvm-svn: 154863 | 
| | 
| 
| 
| 
| 
| | FoldingSetNodeID.
llvm-svn: 154495 | 
| | 
| 
| 
| 
| 
| | Patch by Dmitri Shubin!
llvm-svn: 154391 | 
| | 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| | by default.
This is a behaviour configurable in the MCAsmInfo. I've decided to turn
it on by default in (possibly optimistic) hopes that most assemblers are
reasonably sane. If this proves a problem, switching to default seems
reasonable.
I'm not sure if this is the opportune place to test, but it seemed good
to make sure it was tested somewhere.
llvm-svn: 154235 | 
| | 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| | disassembler requires a MCSubtargetInfo and a
MCInstrInfo to exist in order to initialize the
instruction printer and disassembler; however,
although the printer and disassembler keep
references to these objects they do not own them.
Previously, the MCSubtargetInfo and MCInstrInfo
objects were just leaked.
I have extended LLVMDisasmContext to own these
objects and delete them when it is destroyed.
llvm-svn: 154192 | 
| | 
| 
| 
| 
| 
| 
| 
| | MCInstPrinter.
All implementations used the same code.
llvm-svn: 153866 | 
| | 
| 
| 
| 
| 
| | getInstructionName and the static data it contains since the same tables are already in MCInstrInfo.
llvm-svn: 153860 | 
| | 
| 
| 
| | llvm-svn: 153502 | 
| | 
| 
| 
| | llvm-svn: 153429 | 
| | 
| 
| 
| 
| 
| | entries in the relocation table before they are written out to the file. 
llvm-svn: 153345 | 
| | 
| 
| 
| 
| 
| | rdar://11027851
llvm-svn: 153137 | 
| | 
| 
| 
| | llvm-svn: 153136 | 
| | 
| 
| 
| 
| 
| 
| 
| | evaluated to '1' when the argument list was empty (should be '0').
rdar://11057257
llvm-svn: 152967 | 
| | 
| 
| 
| 
| 
| 
| 
| 
| | This needs a test, but it will take some time to figure
out the best way to get an input that will produce > 2^16 relocs.
Patch by Graydon Hoare!
llvm-svn: 152787 | 
| | 
| 
| 
| 
| 
| 
| | Used to allow context sensitive printing of super-register or sub-register
references.
llvm-svn: 152043 | 
| | 
| 
| 
| | llvm-svn: 151979 | 
| | 
| 
| 
| | llvm-svn: 151687 | 
| | 
| 
| 
| 
| 
| 
| 
| 
| 
| | debug info for assembly files. We were already doing the right thing when
producing debug info for C/C++.
ELF linkers don't know dwarf, so they depend on these relocations to produce
valid dwarf output.
llvm-svn: 151655 | 
| | 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| | We on the linker to resolve calls to the appropriate BL/BLX instruction
to make interworking function correctly. It uses the symbol in the
relocation to do that, so we need to be careful about being too clever.
To enable this for ARM mode, split the BL/BLX fixup kind off from the
unconditional-branch fixups.
rdar://10927209
llvm-svn: 151571 | 
| | 
| 
| 
| | llvm-svn: 151418 | 
| | 
| 
| 
| 
| 
| 
| 
| 
| | Add support for a missed case when the symbols in a difference
expression are in the same section but not the same fragment.
rdar://10924681
llvm-svn: 151345 | 
| | 
| 
| 
| | llvm-svn: 151289 | 
| | 
| 
| 
| 
| 
| 
| 
| | allocation.
It's is a bit annoying, we should hide this implementation detail better.
llvm-svn: 151284 | 
| | 
| 
| 
| | llvm-svn: 151213 | 
| | 
| 
| 
| 
| 
| 
| 
| 
| | construction. Simplify its interface, implementation, and users
accordingly as there is no longer an 'uninitialized' state to check for.
Also, fixes a bug lurking in the interface as there was one method that
didn't correctly check for initialization.
llvm-svn: 151024 | 
| | 
| 
| 
| | llvm-svn: 150918 | 
| | 
| 
| 
| | llvm-svn: 150836 | 
| | 
| 
| 
| 
| 
| 
| | to why this is needed.  This broke the darwin's otool(1) program.  This change
was made in r144385.
llvm-svn: 150832 | 
| | 
| 
| 
| 
| 
| | breaking other platforms...
llvm-svn: 150819 | 
| | 
| 
| 
| | llvm-svn: 150818 | 
| | 
| 
| 
| 
| 
| 
| 
| | LSDA, which are only used when the eh frame is used, so this lazy allocation doesn't really make sense.
Fix the type of eh_frame on Solaris so that Sun ld doesn't fail to combine them (thus making it impossible for the unwind library to find them and breaking exceptions).
llvm-svn: 150814 | 
| | 
| 
| 
| 
| 
| | EmitValue (literal values). Previously only called on expressions in instructions. New test cases added to tls.s, tls-i386.s. Resolves PR11981.
llvm-svn: 150582 | 
| | 
| 
| 
| 
| 
| | Patch by Kai Nacke!
llvm-svn: 150307 | 
| | 
| 
| 
| | llvm-svn: 149967 | 
| | 
| 
| 
| 
| 
| 
| | This CL delays reading of function bodies from initial parse until
materialization, allowing overlap of compilation with bitcode download.
llvm-svn: 149918 | 
| | 
| 
| 
| 
| 
| 
| 
| 
| 
| | cache disassemblers according to the string value
of the target triple, not according to the enum
of the triple CPU.  The reason for this is that
certain attributes of the instruction set are not
reflected in the enum, but only in the string.
llvm-svn: 149773 | 
| | 
| 
| 
| 
| 
| 
| 
| | needed to emit a 64-bit gp-relative relocation entry. Make changes necessary
for emitting jump tables which have entries with directive .gpdword. This patch
does not implement the parts needed for direct object emission or JIT.
llvm-svn: 149668 |