Kevin Enderby
a5c783280f
add llvm-mc support for parsing the .subsections_via_symbols directive.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@75500 91177308-0d34-0410-b5e6-96231b3b80d8
2009-07-13 21:03:15 +00:00
Chris Lattner
39750254e1
silence vc++ warning.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@75394 91177308-0d34-0410-b5e6-96231b3b80d8
2009-07-11 22:32:37 +00:00
Chris Lattner
9be3fee2bd
add support for .zerofill, patch by Kevin Enderby!
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@75301 91177308-0d34-0410-b5e6-96231b3b80d8
2009-07-10 22:20:30 +00:00
Chris Lattner
1fc3d75581
add llvm-mc support for parsing the .lcomm directive, patch by Kevin Enderby!
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@75148 91177308-0d34-0410-b5e6-96231b3b80d8
2009-07-09 17:25:12 +00:00
Chris Lattner
4e4db7adfc
Implement parsing support for the .comm directive. Patch by
...
Kevin Enderby!
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@74944 91177308-0d34-0410-b5e6-96231b3b80d8
2009-07-07 20:30:46 +00:00
Chris Lattner
b717fb0fe0
implement error recovery in the llvm-mc parser. Feel the power!
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@74728 91177308-0d34-0410-b5e6-96231b3b80d8
2009-07-02 21:53:43 +00:00
Daniel Dunbar
2c3f00cd94
llvm-mc/x86: Fix bug in disambiguation of displacement operand, introduced by me
...
(I think).
- We weren't properly parsing the leading parenthesized expression in something
like 'push (4)(%eax)'.
- Added ParseParenRelocatableExpression to support this. I suspect we should
just use lookahead, though.
- Test case to follow.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@74685 91177308-0d34-0410-b5e6-96231b3b80d8
2009-07-02 02:09:07 +00:00
Daniel Dunbar
0eebb0543f
llvm-mc: Emit parsed instructions to the MCStreamer.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@74594 91177308-0d34-0410-b5e6-96231b3b80d8
2009-07-01 06:35:48 +00:00
Daniel Dunbar
d9627e11bf
llvm-mc: Introduce method to match a parsed x86 instruction into an MCInst.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@74573 91177308-0d34-0410-b5e6-96231b3b80d8
2009-06-30 23:38:38 +00:00
Daniel Dunbar
f4b830f03f
llvm-mc: Accept relocatable expressions for .org, assignments, .byte, etc.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@74498 91177308-0d34-0410-b5e6-96231b3b80d8
2009-06-30 02:10:03 +00:00
Daniel Dunbar
15d1707096
llvm-mc: Evaluation for relocatable expressions.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@74496 91177308-0d34-0410-b5e6-96231b3b80d8
2009-06-30 01:49:52 +00:00
Daniel Dunbar
3fb7683bec
Normalize SourceMgr messages.
...
- Don't print "Parsing" in front of every message.
- Take additional "type" argument which is prepended to the message (with ": ")
if given.
- Update clients to print errors (warnings) as:
<filename>:<line number>: error(warning): ...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@74489 91177308-0d34-0410-b5e6-96231b3b80d8
2009-06-30 00:49:23 +00:00
Daniel Dunbar
d7b267bd90
llvm-mc: Parse symbol attribute directives.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@74487 91177308-0d34-0410-b5e6-96231b3b80d8
2009-06-30 00:33:19 +00:00
Daniel Dunbar
c29dfa786a
llvm-mc: Parse .{,b,p2}align{,w,l} directives.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@74478 91177308-0d34-0410-b5e6-96231b3b80d8
2009-06-29 23:46:59 +00:00
Daniel Dunbar
dce0f3c556
llvm-mc: Diagnose misuse (mix) of defined symbols and labels.
...
- For example, we diagnose errors on:
--
a:
a = 10
--
- For now we reject code like:
--
.long a
a = 10
--
which "as" accepts (on Darwin).
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@74476 91177308-0d34-0410-b5e6-96231b3b80d8
2009-06-29 23:43:14 +00:00
Daniel Dunbar
513306395c
Fix uninitialized variable warning.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@74457 91177308-0d34-0410-b5e6-96231b3b80d8
2009-06-29 21:14:21 +00:00
Daniel Dunbar
475839e9a9
MC: Improve expression parsing and implement evaluation of absolute expressions.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@74448 91177308-0d34-0410-b5e6-96231b3b80d8
2009-06-29 20:37:27 +00:00
Daniel Dunbar
c238b584de
MC: Parse .org directives.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@74218 91177308-0d34-0410-b5e6-96231b3b80d8
2009-06-25 22:44:51 +00:00
Daniel Dunbar
8f780cd789
MC: Parse .set and assignments.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@74208 91177308-0d34-0410-b5e6-96231b3b80d8
2009-06-25 21:56:11 +00:00
Daniel Dunbar
a0d1426af0
Basic .s parsing for .asci[iz], .fill, .space, {.byte, .short, ... }
...
- Includes some DG tests in test/MC/AsmParser, which are rather primitive since
we don't have a -verify mode yet.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@74139 91177308-0d34-0410-b5e6-96231b3b80d8
2009-06-24 23:30:00 +00:00
Chris Lattner
529fb545e7
implement a bunch of synonyms for section switching.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@74062 91177308-0d34-0410-b5e6-96231b3b80d8
2009-06-24 05:13:15 +00:00
Chris Lattner
9a023f70b4
add support for parsing and emitting .section directives. We can now parse
...
things like:
.section __TEXT,__cstring,cstring_literals
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@74058 91177308-0d34-0410-b5e6-96231b3b80d8
2009-06-24 04:43:34 +00:00
Chris Lattner
c69485e34d
add trivial support for passing label definitions through the MCStreamer.
...
This is suboptimal in several aspects, see the commented out assertion.
I need to talk to Daniel about this.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@74057 91177308-0d34-0410-b5e6-96231b3b80d8
2009-06-24 04:31:49 +00:00
Chris Lattner
faf32c102d
make the lexer unique strings it lexes instead of passing them back as
...
std::strings.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@74036 91177308-0d34-0410-b5e6-96231b3b80d8
2009-06-24 00:33:19 +00:00
Daniel Dunbar
ecc63f8687
Start flushing out MCContext.
...
- Lives inside new library lib/MC (LLVMMC.a)
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@74013 91177308-0d34-0410-b5e6-96231b3b80d8
2009-06-23 22:01:43 +00:00
Chris Lattner
29dfe7c5f7
refactor a bunch of X86 specific stuff out to its own file.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@73982 91177308-0d34-0410-b5e6-96231b3b80d8
2009-06-23 18:41:30 +00:00
Chris Lattner
8dfbe6c853
implement a trivial binary expression parser, we can now parse all of 176.gcc.llc.s
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@73950 91177308-0d34-0410-b5e6-96231b3b80d8
2009-06-23 05:57:07 +00:00
Chris Lattner
7031806fe2
process memory operands with a parenthesized expression for a displacement,
...
like "(4+5)(%eax)".
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@73878 91177308-0d34-0410-b5e6-96231b3b80d8
2009-06-22 06:35:58 +00:00
Chris Lattner
74ec1a3b11
Implement full support for parsing primary expressions. We can now parse
...
all of health and voronoi (ignoring directives). We only get 409 lines into
176.gcc though because we don't have binary operators yet:
Parsing 176.gcc.llc.s:409: unexpected token in operand list
movsbl _arityvec+1(,%edi,8), %eax
^
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@73877 91177308-0d34-0410-b5e6-96231b3b80d8
2009-06-22 06:32:03 +00:00
Chris Lattner
be9c23fef4
implement parser support for '*' operands, as in "call *%eax".
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@73876 91177308-0d34-0410-b5e6-96231b3b80d8
2009-06-22 06:02:13 +00:00
Chris Lattner
c41938303b
implement memory operand parsing.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@73875 91177308-0d34-0410-b5e6-96231b3b80d8
2009-06-22 05:51:26 +00:00
Chris Lattner
2cf5f14f20
start implementing some simple operand parsing.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@73867 91177308-0d34-0410-b5e6-96231b3b80d8
2009-06-22 01:29:09 +00:00
Chris Lattner
14ee48a5ba
rename SourceMgr::PrintError to PrintMessage.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@73861 91177308-0d34-0410-b5e6-96231b3b80d8
2009-06-21 21:22:11 +00:00
Chris Lattner
b0789ed5a4
set up the top-level parsing loop.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@73860 91177308-0d34-0410-b5e6-96231b3b80d8
2009-06-21 20:54:55 +00:00
Chris Lattner
27aa7d259b
stub out parser for asm files. Change invariant on lexer to always
...
print its error message when it returns an asmtok::Error token.
Compute a proper error code for llvm-mc in 'lex' mode. Add new
-as-lex option to enable lexing mode (vs parsing mode).
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@73859 91177308-0d34-0410-b5e6-96231b3b80d8
2009-06-21 20:16:42 +00:00