Rafael Espindola
2c06448360
Fix macros arguments with an underscore, dot or dollar in them. This is based
...
on a patch by Andy/PaX. I added the support for dot and dollar.
llvm-svn: 162298
2012-08-21 18:29:30 +00:00
Rafael Espindola
af6da83a2c
Make the wording in of the "expected identifier" error in the .macro directive
...
consistent with the other "expected identifier" errors.
Extracted from the Andy/PaX patch. I added the test.
llvm-svn: 162291
2012-08-21 17:12:05 +00:00
Rafael Espindola
d2dc2a7af3
Use typedefs. Fix indentation. Extracted from the Andy/PaX patch.
...
llvm-svn: 162283
2012-08-21 16:06:48 +00:00
Rafael Espindola
5535863043
Remove unused variable. Extracted from the Andy/PaX patch.
...
llvm-svn: 162282
2012-08-21 16:01:14 +00:00
Rafael Espindola
3e5eb4263a
Fix typo. Extracted from the Andy/PaX patch.
...
llvm-svn: 162281
2012-08-21 15:55:04 +00:00
Rafael Espindola
cb7eadfe7e
Typedefs and indentation fixes from the Andy Zhang/PAX macro argument patch.
...
Committing it first as it makes the "real" patch a lot easier to read.
llvm-svn: 161491
2012-08-08 14:51:03 +00:00
Jim Grosbach
20666162e9
Keep empty assembly macro argument values in the middle of the list.
...
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
2012-07-30 22:44:17 +00:00
Sylvestre Ledru
35521e2310
Fix a typo (the the => the)
...
llvm-svn: 160621
2012-07-23 08:51:15 +00:00
Bill Wendling
d163405df8
Remove tabs.
...
llvm-svn: 160475
2012-07-19 00:04:14 +00:00
Akira Hatanaka
d359075e43
Enable target dependent directive parsing to hook before standard parser in
...
AsmParser::ParseStatement.
Patch by Vladimir Medic.
llvm-svn: 159768
2012-07-05 19:09:33 +00:00
Rafael Espindola
f70bea93e2
Implement irpc. Extracted from a patch by the PaX team. I just added the test.
...
llvm-svn: 158604
2012-06-16 18:03:25 +00:00
Rafael Espindola
768b41c17a
Factor macro argument parsing into helper methods and add support for .irp.
...
Patch extracted from a larger one by the PaX team. I added the testcases
and tightened error handling a bit.
llvm-svn: 158523
2012-06-15 14:02:34 +00:00
Rafael Espindola
34b9c511c1
Represent .rept as an anonymous macro. This removes the need for the ActiveRept
...
vector. No functionality change.
Extracted from a patch by the PaX Team.
llvm-svn: 157909
2012-06-03 23:57:14 +00:00
Rafael Espindola
dd17c237a8
Add a typedef to simplify the code a bit. Not functionality change.
...
Part of a patch by the PaX Team.
llvm-svn: 157908
2012-06-03 22:41:23 +00:00
Benjamin Kramer
bde9176663
Fix typos found by http://github.com/lyda/misspell-check
...
llvm-svn: 157885
2012-06-02 10:20:22 +00:00
Benjamin Kramer
c7eda3ee9c
Fix spacing after if.
...
llvm-svn: 156716
2012-05-12 16:52:21 +00:00
Rafael Espindola
47b7dac220
Add support for the .rept directive. Patch by Vladmir Sorokin. I added support
...
for nesting.
llvm-svn: 156714
2012-05-12 16:31:10 +00:00
Benjamin Kramer
95d31bcba5
AsmParser: Add support for the .purgem directive.
...
Based on a patch by Team PaX.
llvm-svn: 156709
2012-05-12 11:21:46 +00:00
Benjamin Kramer
38de62f883
AsmParser: Give a nice error message for .code16gcc, which is currently unsupported.
...
Patch by Team PaX!
llvm-svn: 156708
2012-05-12 11:19:04 +00:00
Benjamin Kramer
66b8d4d28f
AsmParser: ignore the .extern directive.
...
llvm-svn: 156707
2012-05-12 11:18:59 +00:00
Benjamin Kramer
e297b9f506
AsmParser: Add support for .ifc and .ifnc directives.
...
Based on a patch from PaX Team.
llvm-svn: 156706
2012-05-12 11:18:51 +00:00
Benjamin Kramer
62c18b0881
AsmParser: Add support for .ifb and .ifnb directives.
...
Based on a patch from PaX Team.
llvm-svn: 156705
2012-05-12 11:18:42 +00:00
Jim Grosbach
758e0cc94a
MC: Unknown assembler directives are now hard errors.
...
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
2012-05-01 18:38:27 +00:00
Jim Grosbach
a0c53f147a
MC: Remove errant EatToEndOfStatement() in asm parser.
...
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
2012-05-01 18:38:24 +00:00
Jim Grosbach
1e1d68f1b9
MC assembly parser handling for trailing comma in macro instantiation.
...
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
2012-04-16 21:18:49 +00:00
Craig Topper
1fcf5bcae1
Prune some includes
...
llvm-svn: 153502
2012-03-27 07:54:11 +00:00
Jim Grosbach
1283317db4
Assembler should accept redefinitions of unused variable symbols.
...
rdar://11027851
llvm-svn: 153137
2012-03-20 21:33:21 +00:00
Jim Grosbach
2c8e0ac85c
MC asm parser macro argument count was wrong when empty.
...
evaluated to '1' when the argument list was empty (should be '0').
rdar://11057257
llvm-svn: 152967
2012-03-17 00:11:42 +00:00
Craig Topper
a2886c21d9
Convert assert(0) to llvm_unreachable
...
llvm-svn: 149967
2012-02-07 05:05:23 +00:00
Devang Patel
a173ee56fd
Add assembler dialect attribute in asm parser which lets target specific asm parser change dialect on the fly.
...
llvm-svn: 149396
2012-01-31 18:14:05 +00:00
Benjamin Kramer
4efe5064c3
Silence GCC's -Wreturn-type warning.
...
llvm-svn: 149179
2012-01-28 15:28:41 +00:00
Rafael Espindola
004725876e
Small improvement to the recursion detection logic from the previous commit.
...
llvm-svn: 149175
2012-01-28 06:22:14 +00:00
Rafael Espindola
72f5f170c6
Handle recursive variable definitions directly. This gives us better error
...
messages and allows us to fix PR11865.
llvm-svn: 149174
2012-01-28 05:57:00 +00:00
Jim Grosbach
b591277c4a
Better diagnostic for malformed .org assembly directive.
...
Provide source line number information.
llvm-svn: 149101
2012-01-27 00:37:08 +00:00
Rafael Espindola
3c47e37387
Add support for .cfi_signal_frame. Fixes pr11762.
...
llvm-svn: 148733
2012-01-23 21:51:52 +00:00
David Blaikie
46a9f016c5
More dead code removal (using -Wunreachable-code)
...
llvm-svn: 148578
2012-01-20 21:51:11 +00:00
Kevin Enderby
6223cf72e6
The error check for using -g with a .s file already containing dwarf .file
...
directives was in the wrong place and getting triggered incorectly with a
cpp .file directive. This change fixes that and adds a test case.
llvm-svn: 147951
2012-01-11 18:04:47 +00:00
Devang Patel
227b6279b6
Let asm parser query asm syntax dialect.
...
llvm-svn: 147880
2012-01-10 21:49:42 +00:00
Kevin Enderby
f7d77069ca
This is the matching change for the data structure name changes for the
...
functional change in r147860 to use DW_TAG_label's instead TAG_subprogram's.
This only changes names and updates comments. No functional change.
llvm-svn: 147877
2012-01-10 21:12:34 +00:00
Rafael Espindola
4ea99816ef
Implement cfi_restore. Patch by Brian Anderson!
...
llvm-svn: 147356
2011-12-29 21:43:03 +00:00
Rafael Espindola
ef4aa35164
Implement .cfi_escape. Patch by Brian Anderson!
...
llvm-svn: 147352
2011-12-29 20:24:47 +00:00
Kevin Enderby
dc785db0c3
Another improvement to the implementation of .incbin directive by avoiding a
...
buffer copy. Suggestion by Chris Lattner!
llvm-svn: 146614
2011-12-15 00:00:27 +00:00
Kevin Enderby
ad41ab5015
Improve the implementation of .incbin directive by replacing a loop by using
...
getStreamer().EmitBytes. Suggestion by Benjamin Kramer!
llvm-svn: 146599
2011-12-14 22:34:45 +00:00
Kevin Enderby
109f25c966
Add the .incbin directive which takes the binary data from a file and emits
...
it to the streamer. rdar://10383898
llvm-svn: 146592
2011-12-14 21:47:48 +00:00
Kevin Enderby
e7739d484f
The second part of support for generating dwarf for assembly source files. This
...
generates the dwarf Compile Unit DIE and a dwarf subprogram DIE for each
non-temporary label.
The next part will be to get the clang driver to enable this when assembling
a .s file. rdar://9275556
llvm-svn: 146262
2011-12-09 18:09:40 +00:00
Kevin Enderby
60d8516857
Replace tabs I added in this new line of code with spaces.
...
Thanks to Nick for spotting this!
llvm-svn: 143556
2011-11-02 17:56:38 +00:00
Kevin Enderby
6469fc275a
First part of support for generating dwarf for assembly source files with the
...
-g flag. In this part we generate the .file for the source being assembled and
the .loc's for the assembled instructions.
The next part will be to generate the dwarf Compile Unit DIE and a dwarf
subprogram DIE for each non-temporary label.
Once the next part is done test cases will be added. rdar://9275556
llvm-svn: 143509
2011-11-01 22:27:22 +00:00
Rafael Espindola
e0d0908356
Fix parsing of a line with only a # in it.
...
llvm-svn: 142537
2011-10-19 18:48:52 +00:00
Nick Lewycky
40f8f2ff24
Add support for a new extension to the .file directive:
...
.file filenumber "directory" "filename"
This removes one join+split of the directory+filename in MC internals. Because
bitcode files have independent fields for directory and filenames in debug info,
this patch may change the .o files written by existing .bc files.
llvm-svn: 142300
2011-10-17 23:05:28 +00:00
Benjamin Kramer
47f5e30e78
PR11143: Save the old diagnostic handler and call it when munging diagnostics for #line directives.
...
This reenables proper inline asm diagnostics in clang
llvm-svn: 142132
2011-10-16 10:48:29 +00:00