| Commit message (Collapse) | Author | Age | Files | Lines |
... | |
|
|
|
|
|
| |
in a future commit.
llvm-svn: 166054
|
|
|
|
|
|
| |
an instruction.
llvm-svn: 165955
|
|
|
|
|
|
|
|
|
| |
inline assembly. For the time being, these will be called directly by clang.
However, in the near future I expect these to be sunk back into the MC layer
and more basic APIs (e.g., getClobbers(), getConstraints(), etc.) will be called
by clang.
llvm-svn: 165946
|
|
|
|
|
|
|
|
|
|
|
| |
the interface between the front-end and the MC layer when parsing inline
assembly. Unfortunately, this is too deep into the parsing stack. Specifically,
we're unable to handle target-independent assembly (i.e., assembly directives,
labels, etc.). Note the MatchAndEmitInstruction() isn't the correct
abstraction either. I'll be exposing target-independent hooks shortly, so this
is really just a cleanup.
llvm-svn: 165858
|
|
|
|
| |
llvm-svn: 165540
|
|
|
|
|
|
|
|
|
|
| |
to improve compatibility with GNU as.
Based on a patch by PaX Team.
Fixed assertion failures on non-Darwin and added additional test cases.
llvm-svn: 164248
|
|
|
|
|
|
|
|
| |
This patch is based on the one by PaX Team.
Patch by Andy Zhang!
llvm-svn: 164246
|
|
|
|
|
|
|
|
| |
The directive can be matched with directives other than '.rept'
Patch by Andy Zhang!
llvm-svn: 164245
|
|
|
|
| |
llvm-svn: 163970
|
|
|
|
|
|
|
|
|
|
| |
* wrap code blocks in \code ... \endcode;
* refer to parameter names in paragraphs correctly (\arg is not what most
people want -- it starts a new paragraph);
* use \param instead of \arg to document parameters in order to be consistent
with the rest of the codebase.
llvm-svn: 163902
|
|
|
|
|
|
|
|
| |
For gas compatibility.
rdar://12219394
llvm-svn: 163854
|
|
|
|
|
|
|
|
| |
"#if !defined(NDEBUG) || defined(LLVM_ENABLE_DUMP)"
No functional change. Update r163344.
llvm-svn: 163679
|
|
|
|
| |
llvm-svn: 163547
|
|
|
|
|
|
|
|
| |
For some reason .lcomm uses byte alignment and .comm log2 alignment so we can't
use the same setting for both. Fix this by reintroducing the LCOMM enum.
I verified this against mingw's gcc.
llvm-svn: 163420
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
- Darwin lied about not supporting .lcomm and turned it into zerofill in the
asm parser. Push the zerofill-conversion down into macho-specific code.
- This makes the tri-state LCOMMType enum superfluous, there are no targets
without .lcomm.
- Do proper error reporting when trying to use .lcomm with alignment on a target
that doesn't support it.
- .comm and .lcomm alignment was parsed in bytes on COFF, should be power of 2.
- Fixes PR13755 (.lcomm crashes on ELF).
llvm-svn: 163395
|
|
|
|
|
|
| |
No functional change.
llvm-svn: 163344
|
|
|
|
| |
llvm-svn: 162826
|
|
|
|
|
|
| |
on a patch by Andy/PaX. I added the support for dot and dollar.
llvm-svn: 162298
|
|
|
|
|
|
|
| |
consistent with the other "expected identifier" errors.
Extracted from the Andy/PaX patch. I added the test.
llvm-svn: 162291
|
|
|
|
| |
llvm-svn: 162283
|
|
|
|
| |
llvm-svn: 162282
|
|
|
|
| |
llvm-svn: 162281
|
|
|
|
|
|
| |
Committing it first as it makes the "real" patch a lot easier to read.
llvm-svn: 161491
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
There are situations where inline ASM may want to change the section -- for
instance, to create a variable in the .data section. However, it cannot do this
without (potentially) restoring to the wrong section. E.g.:
asm volatile (".section __DATA, __data\n\t"
".globl _fnord\n\t"
"_fnord: .quad 1f\n\t"
".text\n\t"
"1:" :::);
This may be wrong if this is inlined into a function that has a "section"
attribute. The user should use `.pushsection' and `.popsection' here instead.
The addition of `.previous' is added for completeness.
<rdar://problem/12048387>
llvm-svn: 161477
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Empty macro arguments at the end of the list should be as-if not specified at
all, but those in the middle of the list need to be kept so as not to screw
up the positional numbering. E.g.:
.macro foo
foo_-bash___:
nop
.endm
foo 1, 2, 3, 4
foo 1, , 3, 4
Should create two labels, "foo_1_2_3_4" and "foo_1__3_4".
rdar://11948769
llvm-svn: 161002
|
|
|
|
| |
llvm-svn: 160621
|
|
|
|
| |
llvm-svn: 160475
|
|
|
|
|
|
|
|
| |
AsmParser::ParseStatement.
Patch by Vladimir Medic.
llvm-svn: 159768
|
|
|
|
| |
llvm-svn: 158604
|
|
|
|
|
|
|
| |
Patch extracted from a larger one by the PaX team. I added the testcases
and tightened error handling a bit.
llvm-svn: 158523
|
|
|
|
|
|
|
| |
vector. No functionality change.
Extracted from a patch by the PaX Team.
llvm-svn: 157909
|
|
|
|
|
|
| |
Part of a patch by the PaX Team.
llvm-svn: 157908
|
|
|
|
| |
llvm-svn: 157885
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
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
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
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
|
|
|
|
| |
llvm-svn: 153502
|
|
|
|
|
|
| |
rdar://11027851
llvm-svn: 153137
|
|
|
|
|
|
|
|
| |
evaluated to '1' when the argument list was empty (should be '0').
rdar://11057257
llvm-svn: 152967
|
|
|
|
| |
llvm-svn: 149967
|
|
|
|
|
|
| |
parser change dialect on the fly.
llvm-svn: 149396
|