| Commit message (Collapse) | Author | Age | Files | Lines |
... | |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
variable that has regiser constraint "r" is not 64-bit.
General register operands are output using 64-bit "x" register names, regardless
of the size of the variable, unless the asm operand is prefixed with the "%w"
modifier. This surprises and confuses many users who aren't familiar with
aarch64 inline assembly rules.
With this commit, a note and fixit hint are printed which tell the users that
they need modifier "%w" in order to output a "w" register instead of an "x"
register.
<rdar://problem/12764785>
llvm-svn: 216260
|
|
|
|
|
|
|
|
|
|
|
| |
An array showing up in an inline assembly input is accepted in ICC and
GCC 4.8
This fixes PR20201.
Differential Revision: http://reviews.llvm.org/D4382
llvm-svn: 212954
|
|
|
|
|
|
| |
Requires LLVM r210417.
llvm-svn: 210418
|
|
|
|
| |
llvm-svn: 209812
|
|
|
|
|
|
| |
takeAs to getAs.
llvm-svn: 209800
|
|
|
|
| |
llvm-svn: 209613
|
|
|
|
|
|
| |
This is in addition to the existing support for typedefs.
llvm-svn: 208053
|
|
|
|
| |
llvm-svn: 207896
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
for labels in inline assembly that aren't in the lookup tables. E.g.,
__asm {
a:
jmp a
}
rdar://13983623
llvm-svn: 182659
|
|
|
|
| |
llvm-svn: 181574
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
the actual parser and support arbitrary id-expressions.
We're actually basically set up to do arbitrary expressions here
if we wanted to.
Assembly operands permit things like A::x to be written regardless
of language mode, which forces us to embellish the evaluation
context logic somewhat. The logic here under template instantiation
is incorrect; we need to preserve the fact that an expression was
unevaluated. Of course, template instantiation in general is fishy
here because we have no way of delaying semantic analysis in the
MC parser. It's all just fishy.
I've also fixed the serialization of MS asm statements.
This commit depends on an LLVM commit.
llvm-svn: 180976
|
|
|
|
|
|
| |
Part of rdar://13663589
llvm-svn: 180055
|
|
|
|
|
|
|
| |
change indended.
Part of rdar://13663589
llvm-svn: 180027
|
|
|
|
|
|
|
|
|
|
| |
parser,
not the asm parser. As such, begin moving the parsing logic in that direction.
This patch is just a temporary hack until the real frontend parser can be hooked
up. Part of rdar://13663589
llvm-svn: 179882
|
|
|
|
| |
llvm-svn: 179762
|
|
|
|
|
|
| |
and Jordan's suggestion. No functional change intendend.
llvm-svn: 178507
|
|
|
|
| |
llvm-svn: 178481
|
|
|
|
| |
llvm-svn: 178120
|
|
|
|
|
|
|
|
|
|
| |
pointer type.
If the ASM statement is dereferencing an incomplete pointer type, issue an error
instead of crashing.
<rdar://problem/12700799>
llvm-svn: 177915
|
|
|
|
|
|
|
|
|
|
|
|
| |
isIncompleteType() returns true or false for template types depending on whether
the type is instantiated yet. In this context, that's arbitrary. The better way
to check for a complete type is RequireCompleteType().
Thanks to Eli Friedman for noticing this!
<rdar://problem/12700799>
llvm-svn: 177768
|
|
|
|
|
|
| |
s/ParseMSInlineAsm/parseMSInlineAsm/
llvm-svn: 175680
|
|
|
|
|
|
|
| |
for an unsupported architecture.
rdar://13063988
llvm-svn: 173364
|
|
|
|
|
|
|
| |
VarDecl.
Part of rdar://12576868
llvm-svn: 172742
|
|
|
|
|
|
| |
brought into 'clang' namespace by clang/Basic/LLVM.h
llvm-svn: 172323
|
|
|
|
|
|
|
| |
Decl is a VarDecl.
Part of rdar://12991541
llvm-svn: 172120
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
uncovered.
This required manually correcting all of the incorrect main-module
headers I could find, and running the new llvm/utils/sort_includes.py
script over the files.
I also manually added quite a few missing headers that were uncovered by
shuffling the order or moving headers up to be main-module-headers.
llvm-svn: 169237
|
|
|
|
| |
llvm-svn: 167777
|
|
|
|
| |
llvm-svn: 167761
|
|
|
|
|
|
|
|
|
| |
The 'a', 'c', and 'd' constraints on i386 mean a 32-bit register. We cannot
place a 64-bit value into the 32-bit register. Error out instead of causing the
compiler to spew general badness.
<rdar://problem/12415959>
llvm-svn: 167717
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
This code checks the ASM string to see if the output size is able to fit within
the variable specified as the output. For instance, scalar-to-vector conversions
may not really work. It's on by default, but can be turned off with a flag if
you think you know what you're doing.
This is placed under a flag ('-Wasm-operand-widths') and flag group ('-Wasm').
<rdar://problem/12284092>
llvm-svn: 166737
|
|
|
|
| |
llvm-svn: 166723
|
|
|
|
| |
llvm-svn: 166655
|
|
|
|
|
|
|
| |
modifiers. (From an idea by Eric...)
<rdar://problem/12284092>
llvm-svn: 166647
|
|
|
|
| |
llvm-svn: 166489
|
|
|
|
| |
llvm-svn: 166463
|
|
|
|
| |
llvm-svn: 166377
|
|
|
|
| |
llvm-svn: 166310
|
|
|
|
| |
llvm-svn: 166293
|
|
|
|
|
|
| |
which will be used by the asm matcher in the near future.
llvm-svn: 166221
|
|
|
|
|
|
|
| |
*NamedDecl. In turn, build the expressions after we're finished parsing the
asm. This avoids a crasher if the lookup fails.
llvm-svn: 166213
|
|
|
|
|
|
|
| |
layer. Use the new ParseMSInlineAsm() API and add an implementation of the
MCAsmParserSemaCallback interface.
llvm-svn: 166184
|
|
|
|
|
|
| |
front-end and the AsmParser. No functional change intended.
llvm-svn: 166063
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
-The front-end now builds a single assembly string and feeds it to the
AsmParser. The front-end iterates on a per statement basis by calling the
ParseStatement() function. Please note, the calling of ParseStatement() and
and any notion of MCAsmParsedOperands will be sunk into the MC layer in the
near future. I plan to expose more basic APIs such as getClobbers, etc.
-The enumeration of the AsmString expressions have been reworked to use SMLocs
rather than assembly Pieces, which were being parsed in the front-end.
-The test case, t8(), was modified due to r129223. I'll have to find a way to
work around things such as these.
Sorry for the large commit, but breaking this in multiple smaller commits proved
too irritating.
llvm-svn: 165957
|
|
|
|
| |
llvm-svn: 165859
|
|
|
|
| |
llvm-svn: 165851
|
|
|
|
| |
llvm-svn: 165834
|
|
|
|
|
|
| |
reimplemented in the AsmParser where it belongs.
llvm-svn: 165825
|
|
|
|
| |
llvm-svn: 165793
|
|
|
|
| |
llvm-svn: 165772
|
|
|
|
|
|
| |
reimplemented in the AsmParser where it belongs.
llvm-svn: 165752
|