Bill Wendling
ae606a1d1d
Mark some debug variables as 'unused' to quiet compiler and analyzer.
...
llvm-svn: 92183
2009-12-28 01:34:57 +00:00
Chris Lattner
b257d24f62
rename HexDisassembler -> Disassembler, it works on any input
...
integer encoding (0123, 0b10101, 42, etc).
llvm-svn: 91934
2009-12-22 22:50:29 +00:00
Chris Lattner
e3437b33f5
just discard the debug output from the disassembler.
...
llvm-svn: 91933
2009-12-22 22:47:43 +00:00
Chris Lattner
778f92ab02
specify what is invalid about it
...
llvm-svn: 91901
2009-12-22 07:03:21 +00:00
Chris Lattner
502f0f11e0
reject invalid input with a caret, e.g.:
...
simple-tests.txt:16:1: error: invalid instruction
0xff 0xff
^
llvm-svn: 91898
2009-12-22 06:58:29 +00:00
Chris Lattner
dd0c01b5de
various cleanups, make the disassemble reject lines with too much
...
data on them, for example:
addb %al, (%rax)
simple-tests.txt:11:5: error: excess data detected in input
0 0 0 0 0
^
llvm-svn: 91896
2009-12-22 06:56:51 +00:00
Chris Lattner
8879918722
If you thought that it didn't make sense for the disassembler
...
to not produce caret diagnostics, you were right!
llvm-svn: 91895
2009-12-22 06:45:48 +00:00
Chris Lattner
dc9845b79a
rewrite the file parser for the disassembler, implementing support for
...
comments. Also, check in a simple testcase for the disassembler,
including a test for r91864
llvm-svn: 91894
2009-12-22 06:37:58 +00:00
Chris Lattner
72cbaa2ecb
don't crash on blank lines, rename some variables.
...
llvm-svn: 91892
2009-12-22 06:24:00 +00:00
Chandler Carruth
187220e3f5
Update CMake build to include HexDisassembler.cpp.
...
llvm-svn: 91589
2009-12-17 06:35:17 +00:00
Sean Callanan
7e64550747
Test harness for the LLVM disassembler. When invoked
...
with -disassemble, llvm-mc now accepts lines of the
form
0x00 0x00
and passes the resulting bytes to the disassembler for
the chosen (or default) target, printing the result.
llvm-svn: 91579
2009-12-17 01:49:59 +00:00
Nick Lewycky
e0856c5f40
Line this up as well.
...
llvm-svn: 85748
2009-11-01 22:08:51 +00:00
Nick Lewycky
b244909ad4
Fix whitespace.
...
llvm-svn: 85747
2009-11-01 22:07:54 +00:00
Chandler Carruth
56869f22c4
Move DataTypes.h to include/llvm/System, update all users. This breaks the last
...
direct inclusion edge from System to Support.
llvm-svn: 85086
2009-10-26 01:35:46 +00:00
Daniel Dunbar
c3bd60e393
MC: Remove unneeded context argument to MCExpr::Evaluate*.
...
llvm-svn: 84233
2009-10-16 01:57:52 +00:00
Daniel Dunbar
5f339244fb
MC: Tweak variable assignment diagnostics, and make reassignment of non-absolute
...
variables and symbols invalid.
llvm-svn: 84232
2009-10-16 01:57:39 +00:00
Daniel Dunbar
d20cda028a
MC: When parsing a variable reference, substitute absolute variables immediately
...
since they are allowed to be redefined.
llvm-svn: 84230
2009-10-16 01:34:54 +00:00
Chris Lattner
351a7ef01a
add a new DirectiveMap stringmap, which allows more efficient dispatching
...
to directive handlers and allows for easier extensibility.
I only switched a few over for now.
llvm-svn: 82926
2009-09-27 21:16:52 +00:00
Chris Lattner
10a1cfd0f9
avoid copying MCAsmInfo by value, add an (extremely low prio) fixme.
...
llvm-svn: 82911
2009-09-27 19:38:39 +00:00
Chris Lattner
4479034537
Add an intel syntax MCInstPrinter implementation. You can now
...
transcode from AT&T to intel syntax with "llvm-mc foo.s -output-asm-variant=1"
llvm-svn: 82385
2009-09-20 07:17:49 +00:00
Kevin Enderby
ecd879a2d5
Fixed some problems with the logic of parsing line comments by adding
...
isAtStartOfComment and using that instead in two places where a loop
to check if the char was in MAI.getCommentString().
llvm-svn: 82059
2009-09-16 18:08:00 +00:00
Chris Lattner
c6a889d0b6
use an accessor to simplify code.
...
llvm-svn: 81997
2009-09-16 04:12:47 +00:00
Chris Lattner
11b2fc9ea4
Change MCAsmStreamer to take an MCInstPrinter instead of a
...
full AsmPrinter, and change TargetRegistry to keep track
of registered MCInstPrinters.
llvm-mc is still linking in the entire
target foo to get the code emitter stuff, but this is an
important step in the right direction.
llvm-svn: 81754
2009-09-14 03:02:37 +00:00
Kevin Enderby
ce4bec8e0c
Added the ParseInstruction() hook for target specific assembler directives so
...
that things like .word can be parsed as target specific. Moved parsing .word
out of AsmParser.cpp into X86AsmParser.cpp as it is 2 bytes on X86 and 4 bytes
for other targets that support the .word directive.
llvm-svn: 81461
2009-09-10 20:51:44 +00:00
Daniel Dunbar
a944234a1e
MC: Give target specific parsers access to the MCStreamer.
...
llvm-svn: 81416
2009-09-10 00:59:15 +00:00
Benjamin Kramer
63951ada31
Fix an integer truncation noticed by MSVC.
...
llvm-svn: 81109
2009-09-06 09:35:10 +00:00
Kevin Enderby
9c0f7fc746
Added AsmToken enum constants to MCAsmLexer.h for '[', ']', '{', and '}' in
...
preparation of supporting other targets. Then changed the lexer to parse these
as tokens.
llvm-svn: 81050
2009-09-04 22:40:31 +00:00
Kevin Enderby
f92f9909c4
Added the AsmToken::Hash enum constant to MCAsmLexer.h in preparation of
...
supporting other targets. Changed the code to pass MCAsmInfo to the parser
and the lexer. Then changed the lexer to use CommentString from MCAsmInfo
instead of a literal '#' character.
llvm-svn: 81046
2009-09-04 21:45:34 +00:00
Kevin Enderby
7d91218c75
Removed the non-target independent AsmToken::Register enum constant
...
from MCAsmLexer.h in preparation of supporting other targets. Changed the
X86AsmParser code to reflect this by removing AsmLexer::LexPercent and looking
for AsmToken::Percent when parsing in places that used AsmToken::Register.
Then changed X86ATTAsmParser::ParseRegister to parse out registers as an
AsmToken::Percent followed by an AsmToken::Identifier.
llvm-svn: 80929
2009-09-03 17:15:07 +00:00
Chris Lattner
41bf56de79
TAI -> MAI
...
llvm-svn: 80899
2009-09-03 06:13:54 +00:00
Daniel Dunbar
897ffadd2d
llvm-mc: Pass values to MCStreamer as MCExprs, not MCValues.
...
llvm-svn: 80578
2009-08-31 08:09:28 +00:00
Daniel Dunbar
b7b2097aac
llvm-mc: Simplify EmitAssignment ('.set' is identical to '=').
...
llvm-svn: 80577
2009-08-31 08:09:09 +00:00
Daniel Dunbar
b12b33051d
llvm-mc: Remove MCAsmParser::Parse[Paren]RelocatableExpression.
...
llvm-svn: 80576
2009-08-31 08:08:50 +00:00
Daniel Dunbar
7c82d56930
llvm-mc: Add MCAsmParser::Parse[Paren]Expression forms which return an MCExpr.
...
llvm-svn: 80574
2009-08-31 08:08:17 +00:00
Daniel Dunbar
940cda2590
llvm-mc: Add MCAsmParser::getContext.
...
llvm-svn: 80571
2009-08-31 08:07:44 +00:00
Daniel Dunbar
f363645da2
llvm-mc: Switch MCExpr construction to using static member functions, and taking the MCContext (which now owns all MCExprs).
...
llvm-svn: 80569
2009-08-31 08:07:22 +00:00
Daniel Dunbar
115e4d6d7b
llvm-mc: Move AsmExpr into MC lib (as MCExpr).
...
llvm-svn: 80567
2009-08-31 08:06:59 +00:00
Daniel Dunbar
6a715dccdf
llvm-mc: MCStreamer cleanups. - Remove EmitLocalSymbol, this is unsupported for now.
...
- Switch Emit{CommonSymbol,Zerofill} to take alignment in bytes (for consistency).
llvm-svn: 80484
2009-08-30 06:17:16 +00:00
Daniel Dunbar
96abad185d
llvm-mc: Emit .lcomm as .zerofill.
...
llvm-svn: 80343
2009-08-28 05:48:46 +00:00
Daniel Dunbar
e48a69b2a3
llvm-mc: Unique zero fill sections.
...
llvm-svn: 80342
2009-08-28 05:48:29 +00:00
Daniel Dunbar
8d38b8d20c
Revert r80305, I forgot a dependent change.
...
--- Reverse-merging r80305 into '.':
U tools/llvm-mc/AsmParser.cpp
llvm-svn: 80309
2009-08-27 23:58:10 +00:00
Daniel Dunbar
ba33ff294e
llvm-mc: Unique sections in .zerofill.
...
llvm-svn: 80305
2009-08-27 23:45:06 +00:00
Daniel Dunbar
c7c5f9fa86
llvm-mc/Mach-O: Add MCCodeEmitter support, for encoding instructions.
...
- No relocations yet, of course.
llvm-svn: 80235
2009-08-27 08:17:51 +00:00
Daniel Dunbar
d18dd1d5f8
llvm-mc: Only show instruction encodings with --show-encoding.
...
llvm-svn: 80230
2009-08-27 07:56:39 +00:00
Daniel Dunbar
81cb753298
llvm-mc: Tweak MCCodeEmitter skeleton.
...
llvm-svn: 80193
2009-08-27 01:34:22 +00:00
Daniel Dunbar
65105174a6
Sketch TargetRegistry support for MCCodeEmitter abstract interface.
...
- Of course, nothing actually can provide this interface yet.
llvm-svn: 80188
2009-08-27 00:51:57 +00:00
Daniel Dunbar
4d7b2e3307
llvm-mc/Mach-O: Unique sections properly, so we don't get duplicate text
...
sections, etc.
- The quick and dirty way, just clone the TargetLoweringObjectFile
code. Eventually this should be shared... somehow.
llvm-svn: 80168
2009-08-26 22:49:51 +00:00
Daniel Dunbar
e73b267301
llvm-mc/Mach-O: Don't put assembler temporary labels in the symbol table.
...
- I moved section creation back into AsmParser. I think policy decisions like
this should be pushed higher, not lower, when possible (in addition the
assembler has flags which change this behavior, for example).
llvm-svn: 80162
2009-08-26 22:13:22 +00:00
Daniel Dunbar
90398bd222
llvm-mc: Make MCValue take const MCSymbol*s.
...
llvm-svn: 80078
2009-08-26 09:16:46 +00:00
Daniel Dunbar
18f3c9b994
llvm-mc: Make non-sensical max bytes to .align an error.
...
Also, warn about overflow in alignment values.
llvm-svn: 80077
2009-08-26 09:16:34 +00:00