| Commit message (Collapse) | Author | Age | Files | Lines |
|
|
|
|
|
| |
Follow up to r278902. I had missed "fall through", with a space.
llvm-svn: 278970
|
|
|
|
|
|
| |
No functional change, just moving code around.
llvm-svn: 258818
|
|
|
|
| |
llvm-svn: 224413
|
|
|
|
| |
llvm-svn: 221755
|
|
|
|
|
|
|
|
|
|
|
|
| |
With this patch MCDisassembler::getInstruction takes an ArrayRef<uint8_t>
instead of a MemoryObject.
Even on X86 there is a maximum size an instruction can have. Given
that, it seems way simpler and more efficient to just pass an ArrayRef
to the disassembler instead of a MemoryObject and have it do a virtual
call every time it wants some extra bytes.
llvm-svn: 221751
|
|
|
|
|
|
|
|
| |
comma it would access invalid memory.
Cleaned up parse loop.
llvm-svn: 221707
|
|
|
|
| |
llvm-svn: 221536
|
|
|
|
| |
llvm-svn: 219799
|
|
|
|
| |
llvm-svn: 207176
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
This patch re-introduces the MCContext member that was removed from
MCDisassembler in r206063, and requires that an MCContext be passed in at
MCDisassembler construction time. (Previously the MCContext member had been
initialized in an ad-hoc fashion after construction). The MCCContext member
can be used by MCDisassembler sub-classes to construct constant or
target-specific MCExprs.
This patch updates disassemblers for in-tree targets, and provides the
MCRegisterInfo instance that some disassemblers were using through the
MCContext (previously those backends were constructing their own
MCRegisterInfo instances).
llvm-svn: 206241
|
|
|
|
|
|
| |
class.
llvm-svn: 203345
|
|
|
|
|
|
|
|
|
|
| |
This compiles with no changes to clang/lld/lldb with MSVC and includes
overloads to various functions which are used by those projects and llvm
which have OwningPtr's as parameters. This should allow out of tree
projects some time to move. There are also no changes to libs/Target,
which should help out of tree targets have time to move, if necessary.
llvm-svn: 203083
|
|
|
|
| |
llvm-svn: 200345
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
This allows "llvm-mc -disassemble" to accept two new features:
+ Using comma as a byte separator
+ Grouping bytes with '[' and ']' pairs.
The behaviour outside a [...] group is unchanged. But within the group once
llvm-mc encounters a true error, it stops rather than trying to resynchronise
the stream at the next byte. This is more useful for disassembly tests, where
we have an almost-instruction in mind and don't care what the misaligned
interpretation would be. Particularly if it means llvm-mc won't actually see
the next intended almost-instruction.
As a side effect, this means llvm-mc can disassemble its own -show-encoding
output if copy-pasted.
llvm-svn: 186661
|
|
|
|
| |
llvm-svn: 170578
|
|
|
|
|
|
|
|
| |
Again, tools are trickier to pick the main module header for than
library source files. I've started to follow the pattern of using
LLVMContext.h when it is included as a stub for program source files.
llvm-svn: 169252
|
|
|
|
|
|
|
|
| |
Also refactor so all MC paraphernalia are created once for all uses as much as possible.
The test change is to account for the fact that the default disassembler behaviour has changed with regards to specifying the assembly syntax to use.
llvm-svn: 154809
|
|
|
|
|
|
| |
getInstructionName and the static data it contains since the same tables are already in MCInstrInfo.
llvm-svn: 153860
|
|
|
|
|
|
|
| |
Used to allow context sensitive printing of super-register or sub-register
references.
llvm-svn: 152043
|
|
|
|
| |
llvm-svn: 151687
|
|
|
|
|
|
|
| |
This CL delays reading of function bodies from initial parse until
materialization, allowing overlap of compilation with bitcode download.
llvm-svn: 149918
|
|
|
|
| |
llvm-svn: 147855
|
|
|
|
|
|
|
|
|
|
| |
disassembler API.
This will break users of the LLVMCreateDisasm API (not that I know of any). They have to call the
LLVMInitializeAll* functions from llvm-c/Target.h themselves now. edis' C API in all its horribleness
should be unaffected.
llvm-svn: 144385
|
|
|
|
|
|
|
|
| |
note/warning/error as a
string, pass it around as an enum.
llvm-svn: 142107
|
|
|
|
|
|
| |
return, and the printer accept, an annotation string which can be passed through if the client cares about annotations.
llvm-svn: 139876
|
|
|
|
|
|
| |
handling to llvm-mc. Reviewed by Owen Anderson.
llvm-svn: 139237
|
|
|
|
|
|
| |
These are strictly utilities for registering targets and components.
llvm-svn: 138450
|
|
|
|
|
|
|
|
| |
instruction that is disassemblable, but invalid. Only used for ARM UNPREDICTABLE instructions at the moment.
Patch by James Molloy.
llvm-svn: 137830
|
|
|
|
|
|
| |
MCTargetDesc to prepare for next round of changes.
llvm-svn: 135219
|
|
|
|
| |
llvm-svn: 134525
|
|
|
|
| |
llvm-svn: 131094
|
|
|
|
|
|
| |
making the MC disassembler tester more robust.
llvm-svn: 129175
|
|
|
|
|
|
|
|
|
| |
the alias of an InstAlias instead of the thing being aliased. Because we need to
know the features that are valid for an InstAlias.
This is part of a work-in-progress.
llvm-svn: 127986
|
|
|
|
|
|
|
| |
- Don't leak parsed operands during tokenization.
- Don't leak printed insts in llvm-mc.
llvm-svn: 126381
|
|
|
|
|
|
| |
caused it to only parse one line of input.
llvm-svn: 126301
|
|
|
|
|
|
|
| |
operand.evaluate as an error code, not as the
contents of the operand.
llvm-svn: 126181
|
|
|
|
|
|
| |
Patch by Richard Simth.
llvm-svn: 122962
|
|
|
|
| |
llvm-svn: 114847
|
|
|
|
|
|
|
|
| |
of problems with output files being left behind or output streams
being left unclosed. Fix llvm-mc to respect the -o option in all
modes, rather than hardcoding outs() in some cases.
llvm-svn: 111603
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
better in the llvm world. Among other things, this changes:
1. The guts of libedis are now moved into lib/MC/MCDisassembler
2. llvm-mc now depends on lib/MC/MCDisassembler, not tools/edis,
so edis and mc don't have to be built in series.
3. lib/MC/MCDisassembler no longer depends on the C api, the C
API depends on it.
4. Various code cleanup changes.
There is still a lot to be done to make edis fit with the llvm
design, but this is an incremental step in the right direction.
llvm-svn: 108869
|
|
|
|
|
|
|
| |
instructions as well. Added support for checking
this to the llvm-mc tester as well.
llvm-svn: 103454
|
|
|
|
|
|
|
|
| |
that was causing PC-relative branch targets to be
evaluated incorrectly. Also added support for
checking operand values to the llvm-mc tester.
llvm-svn: 103128
|
|
|
|
|
|
| |
patch by Marius Wachtler!
llvm-svn: 101160
|
|
|
|
|
|
|
|
|
|
|
| |
time I use the LIBS variable, which is not subject
to a %.a -> -l% transformation, to link llvm-mc
against libEnhancedDisassembly.
llvm-mc -edis works the same as llvm-mc
-disassemble, but outputs tokens and operands.
llvm-svn: 101058
|
|
|
|
| |
llvm-svn: 100848
|
|
|
|
|
|
| |
integrated into the llvm-mc testing tool.
llvm-svn: 100842
|
|
|
|
|
|
|
|
| |
raw_ostream to print an instruction to had to be specified
at MCInstPrinter construction time instead of being able
to pick at each call to printInstruction.
llvm-svn: 100307
|
|
|
|
| |
llvm-svn: 99101
|
|
|
|
|
|
|
| |
instructions on a single line. Also made it a
bit more forgiving when it reports errors.
llvm-svn: 95197
|
|
integer encoding (0123, 0b10101, 42, etc).
llvm-svn: 91934
|