| Commit message (Collapse) | Author | Age | Files | Lines |
... | |
|
|
|
|
|
|
|
| |
The methods are also exposed via the MCAsmParser interface, which allows more
than one client to control them. Previously, GenericAsmParser was playing with
a member var in AsmParser directly (by virtue of being its friend).
llvm-svn: 172440
|
|
|
|
| |
llvm-svn: 172277
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
The MCAsmParser interface defines ParseIdentifier is public. There's no reason
whatsoever for AsmParser (which implements the MCAsmParser interface) to hide
this method.
This is all part of a bigger scheme. Several asm parsing "extensions" use the
main parser properly through the MCAsmParser interface. However,
GenericAsmParser has much more exclusive access and uses implementation details
from the concrete implementation - AsmParser, in which it is also declared as
a friend. This makes for overly coupled code, and even makes it hard to split
GenericAsmParser into a separate file. There's no reason why GenericAsmParser
shouldn't be able to access AsmParser through an abstract interface, as long
as it's actually registered as an extension.
llvm-svn: 172276
|
|
|
|
|
|
|
|
| |
GenericAsmParser extension, where a lot of directives are already being parsed.
The end goal is having just a single place (and a single lookup table) for
all directive parsing.
llvm-svn: 172268
|
|
|
|
|
|
|
|
| |
couple of undefined behaviors. Operand->needAddressOf() is not initialized at !Operand->isReg()."
It has been redundant since r172157.
llvm-svn: 172166
|
|
|
|
|
|
| |
undefined behaviors. Operand->needAddressOf() is not initialized at !Operand->isReg().
llvm-svn: 172153
|
|
|
|
| |
llvm-svn: 172149
|
|
|
|
| |
llvm-svn: 172146
|
|
|
|
|
|
| |
switch. Committed with Jim's and Chris's approval.
llvm-svn: 172136
|
|
|
|
|
|
| |
Part of rdar://12991541
llvm-svn: 172121
|
|
|
|
|
|
|
|
|
| |
bundling. The document describing this feature and the implementation has also
been updated:
https://sites.google.com/a/chromium.org/dev/nativeclient/pnacl/aligned-bundling-support-in-llvm
llvm-svn: 171797
|
|
|
|
|
|
| |
parsing MS-style inline assembly.
llvm-svn: 171784
|
|
|
|
|
|
|
|
|
|
| |
This is necessary not only for representing empty ranges, but for handling
multibyte characters in the input. (If the end pointer in a range refers to
a multibyte character, should it point to the beginning or the end of the
character in a char array?) Some of the code in the asm parsers was already
assuming this anyway.
llvm-svn: 171765
|
|
|
|
|
|
|
|
|
|
|
| |
http://lists.cs.uiuc.edu/pipermail/llvmdev/2012-December/056754.html
The proposal and implementation are fully documented here:
https://sites.google.com/a/chromium.org/dev/nativeclient/pnacl/aligned-bundling-support-in-llvm
Tests will follow shortly.
llvm-svn: 170718
|
|
|
|
|
|
|
|
| |
the assembler.
Part of PR14624
llvm-svn: 170390
|
|
|
|
| |
llvm-svn: 170389
|
|
|
|
| |
llvm-svn: 170381
|
|
|
|
|
|
|
|
| |
should only occur on invalid input. Instruction matching errors aren't
unexpected, so we can't rely on the AsmParsers HadError variable directly.
rdar://12840278
llvm-svn: 170037
|
|
|
|
|
|
|
|
| |
- Each macro instantiation introduces a new buffer, and FindBufferForLoc() is
linear, so previously macro instantiation could be N^2 for some pathological
inputs.
llvm-svn: 169073
|
|
|
|
|
|
|
| |
to support it. Original patch with the parsing and plumbing by the PaX team and
Roman Divacky. I added the bits in MCDwarf.cpp and the test.
llvm-svn: 168565
|
|
|
|
|
|
| |
Roman Divacky. I just added the testcase.
llvm-svn: 168520
|
|
|
|
|
|
|
|
| |
possible buffer change with a .macro directive.
rdar://12637628
llvm-svn: 167408
|
|
|
|
|
|
|
|
|
|
| |
run through the 'C' preprocessor. That is pick up the file name
and line numbers from the cpp hash file line comments for the
dwarf file and line numbers tables.
rdar://9275556
llvm-svn: 167237
|
|
|
|
|
|
| |
Part of rdar://12576868
llvm-svn: 166790
|
|
|
|
|
|
| |
operator.
llvm-svn: 166779
|
|
|
|
|
|
| |
AsmParser logic. To be used/tested in a subsequent commit.
llvm-svn: 166714
|
|
|
|
|
|
|
|
|
|
| |
see the offsetof operator. Previously, we were matching something like MOVrm
in the front-end and later matching MOVrr in the back-end. This change makes
things more consistent. It also fixes cases where we can't match against a
memory operand as the source (test cases coming).
Part of rdar://12470317
llvm-svn: 166592
|
|
|
|
|
|
|
| |
on patch to r166433.
rdar://12470317
llvm-svn: 166488
|
|
|
|
|
|
|
|
| |
.byte).
<rdar://problem/12470345>.
llvm-svn: 166451
|
|
|
|
|
|
|
|
| |
and friends.
It's unnecessary and makes the generated assembly less faithful to the original source.
llvm-svn: 166440
|
|
|
|
|
|
| |
No functional change intended.
llvm-svn: 166360
|
|
|
|
|
|
| |
inline assembly. Also make sure the remove the ignored statements from the IR.
llvm-svn: 166357
|
|
|
|
| |
llvm-svn: 166352
|
|
|
|
| |
llvm-svn: 166349
|
|
|
|
|
|
|
| |
a memory operand. Retain this information and then add the sizing directives
to the IR. This allows the backend to do proper instruction selection.
llvm-svn: 166316
|
|
|
|
| |
llvm-svn: 166270
|
|
|
|
|
|
| |
which will be used by the asm matcher in the near future.
llvm-svn: 166222
|
|
|
|
|
|
|
| |
*NamedDecl. In turn, build the expressions after we're finished parsing the
asm. This avoids a crasher if the lookup fails.
llvm-svn: 166212
|
|
|
|
|
|
|
|
|
| |
layer. Add the ParseMSInlineAsm() function, which is the new interface to
clang. Also expose the new MCAsmParserSemaCallback interface, which is used
by the back-end to do name lookup in Sema. Finally, remove the now defunct
APIs introduced in r165946.
llvm-svn: 166183
|
|
|
|
|
|
| |
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
|