summaryrefslogtreecommitdiffstats
path: root/llvm/lib/MC/MCDisassembler
Commit message (Collapse)AuthorAgeFilesLines
...
* Introduce MCCodeGenInfo, which keeps information that can affect codegenEvan Cheng2011-07-192-0/+2
| | | | | | | (including compilation, assembly). Move relocation model Reloc::Model from TargetMachine to MCCodeGenInfo so it's accessible even without TargetMachine. llvm-svn: 135468
* Fixed a bug where the MC subtarget informationSean Callanan2011-07-191-0/+1
| | | | | | | wasn't being initialized by the enhanced disassembler, leading to assertion failures. llvm-svn: 135447
* Sink getDwarfRegNum, getLLVMRegNum, getSEHRegNum from TargetRegisterInfo downEvan Cheng2011-07-184-7/+26
| | | | | | | | | to MCRegisterInfo. Also initialize the mapping at construction time. This patch eliminate TargetRegisterInfo from TargetAsmInfo. It's another step towards fixing the layering violation. llvm-svn: 135424
* Rename createAsmInfo to createMCAsmInfo and move registration code to ↵Evan Cheng2011-07-142-2/+4
| | | | | | MCTargetDesc to prepare for next round of changes. llvm-svn: 135219
* Resynchronize EDInfo.h and EDEmitter.cpp.Shantonu Sen2011-07-112-11/+29
| | | | | | | | | | | | The enum names as well as order (i.e. value) had skewed, which means that consumers of the tablegen-ed table would see different values than intended. Make both files have a superset of enums, and add classification as needed for numMCOperands. Reviewed by Owen Anderson llvm-svn: 134905
* Change createAsmParser to take a MCSubtargetInfo instead of triple,Evan Cheng2011-07-091-1/+3
| | | | | | | | | CPU, and feature string. Parsing some asm directives can change subtarget state (e.g. .code 16) and it must be reflected in other modules (e.g. MCCodeEmitter). That is, the MCSubtargetInfo instance must be shared. llvm-svn: 134795
* Eliminate asm parser's dependency on TargetMachine:Evan Cheng2011-07-082-4/+7
| | | | | | | | | | - Each target asm parser now creates its own MCSubtatgetInfo (if needed). - Changed AssemblerPredicate to take subtarget features which tablegen uses to generate asm matcher subtarget feature queries. e.g. "ModeThumb,FeatureThumb2" is translated to "(Bits & ModeThumb) != 0 && (Bits & FeatureThumb2) != 0". llvm-svn: 134678
* createMCInstPrinter doesn't need TargetMachine anymore.Evan Cheng2011-07-062-3/+2
| | | | llvm-svn: 134525
* Fix the ridiculous SubtargetFeatures API where it implicitly expects CPU name toEvan Cheng2011-06-302-3/+5
| | | | | | | | | | be the first encoded as the first feature. It then uses the CPU name to look up features / scheduling itineray even though clients know full well the CPU name being used to query these properties. The fix is to just have the clients explictly pass the CPU name! llvm-svn: 134127
* switch to using a smallvector to avoid allocations for most normal size ↵Chris Lattner2011-05-221-2/+2
| | | | | | instructions. llvm-svn: 131837
* tidy some things up.Chris Lattner2011-05-221-16/+6
| | | | llvm-svn: 131836
* Give MC/MCDisassembler/Disassembler.h a header guard.Sebastian Redl2011-04-241-0/+6
| | | | llvm-svn: 130096
* Made the MC disassembler check before accessingSean Callanan2011-04-201-0/+9
| | | | | | | | MCInst operands for ARM. This allows it to be more tolerant of malformed MCInsts or incorrect instruction metadata. llvm-svn: 129840
* Fix a ton of comment typos found by codespell. Patch byChris Lattner2011-04-151-1/+1
| | | | | | Luis Felipe Strano Moraes! llvm-svn: 129558
* Adding support for printing operands symbolically to llvm's public 'C'Kevin Enderby2011-04-112-2/+3
| | | | | | | | | | | | | disassembler API. Hooked this up to the ARM target so such tools as Darwin's otool(1) can now print things like branch targets for example this: blx _puts instead of this: blx #-36 And even print the expression encoded in the Mach-O relocation entried for things like this: movt r0, :upper16:((_foo-_bar)+1234) llvm-svn: 129284
* Fix potential buffer overflow on win32.Benjamin Kramer2011-04-091-12/+9
| | | | llvm-svn: 129214
* Redirected errors from the AsmParser to the properSean Callanan2011-04-091-0/+10
| | | | | | | | | error stream, in cases where the AsmParser is being invoked by EDDisassembler. Before, they were being sent to errs() because no error handler was installed in the SourceMgr. llvm-svn: 129177
* Fixed a bug where missing EDInstInfo would causeSean Callanan2011-04-071-0/+3
| | | | | | tokenization to crash and burn. llvm-svn: 129051
* An MCDisassembler has the option to not implementShantonu Sen2011-04-051-2/+4
| | | | | | | | | | getEDInfo(), in which case this code would dereference NULL. EDInst can already handle NULL info, so avoid the dereference and pass NULL through. Reviewed by Sean Callanan llvm-svn: 128904
* Fix the MSVC build.Francois Pichet2011-03-291-0/+4
| | | | llvm-svn: 128441
* Unbreak CMake build.Ted Kremenek2011-03-281-1/+2
| | | | llvm-svn: 128426
* Again adding a C API to the disassembler for use by such tools as Darwin'sKevin Enderby2011-03-282-0/+259
| | | | | | | | | | | otool(1), this time with the needed fix for case sensitive file systems :) . This is a work in progress as the interface for producing symbolic operands is not done. But a hacked prototype using information from the object file's relocation entiries and replacing immediate operands with MCExpr's has been shown to work with no changes to the instrucion printer. These APIs will be moved into a dynamic library at some point. llvm-svn: 128415
* Remove the files for r128308 as it is causing a buildbot failure.Kevin Enderby2011-03-262-259/+0
| | | | llvm-svn: 128309
* Adding a C API to the disassembler for use by such tools as Darwin's otool(1).Kevin Enderby2011-03-262-0/+259
| | | | | | | | | | This is a work in progress as the interface for producing symbolic operands is not done. But a hacked prototype using information from the object file's relocation entiries and replacing immediate operands with MCExpr's has been shown to work with no changes to the instrucion printer. These APIs will be moved into a dynamic library at some point. llvm-svn: 128308
* Add asm parsing support w/ testcases for strex/ldrex family of instructionsBruno Cardoso Lopes2011-03-242-1/+7
| | | | llvm-svn: 128236
* We need to pass the TargetMachine object to the InstPrinter if we are printingBill Wendling2011-03-211-1/+2
| | | | | | | | | 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
* Fixed the comparison operator for the enhancedSean Callanan2011-03-121-7/+2
| | | | | | disassembler's disassembler map. llvm-svn: 127527
* Plug some leaks in edis.Benjamin Kramer2011-02-241-0/+4
| | | | | | | - Don't leak parsed operands during tokenization. - Don't leak printed insts in llvm-mc. llvm-svn: 126381
* Fixed a bug in the enhanced disassembler that causedSean Callanan2011-02-231-3/+17
| | | | | | | | it to ignore valid uses of FS and GS as additional base registers in address computations. Added a test case for this. llvm-svn: 126302
* Fix comparator used for looking up previously instantiated EDDisassemblers.Shantonu Sen2011-02-091-2/+4
| | | | | | | | | Now, Syntax is only used as a tie-breaker if the Arch matches. Previously, a request for x86_64 disassembler followed by the i386 disassembler in a single process would return the cached x86_64 disassembler. Fixes <rdar://problem/8958982> llvm-svn: 125215
* Fixed version of 121434 with no new memory leaks.Rafael Espindola2010-12-101-1/+1
| | | | llvm-svn: 121471
* Revert my previous patch to make the valgrind bots happy.Rafael Espindola2010-12-101-1/+1
| | | | llvm-svn: 121461
* Initial support for the cfi directives. This is just enough to getRafael Espindola2010-12-091-1/+1
| | | | | | | | | | | f: .cfi_startproc nop .cfi_endproc assembled (on ELF). llvm-svn: 121434
* Merge System into Support.Michael J. Spencer2010-11-294-4/+4
| | | | llvm-svn: 120298
* Make some symbols static, move classes into anonymous namespaces.Benjamin Kramer2010-10-221-13/+10
| | | | llvm-svn: 117111
* Fixed a crash in the enhanced disassembler whereSean Callanan2010-09-231-0/+2
| | | | | | | because of the lack of a newline, AsmToken::Eof was being found instead of AsmToken::EndOfStatement. llvm-svn: 114621
* Revert "CMake: Get rid of LLVMLibDeps.cmake and export the libraries normally."Michael J. Spencer2010-09-131-2/+1
| | | | | | | | | | This reverts commit r113632 Conflicts: cmake/modules/AddLLVM.cmake llvm-svn: 113819
* CMake: Get rid of LLVMLibDeps.cmake and export the libraries normally.Michael J. Spencer2010-09-101-1/+2
| | | | llvm-svn: 113632
* Let's get those buildbots green: #include is needed in the header, not just ↵Owen Anderson2010-07-202-1/+1
| | | | | | the implementation. llvm-svn: 108912
* apparently also missing an include.Chris Lattner2010-07-201-0/+1
| | | | llvm-svn: 108908
* this is in SystemChris Lattner2010-07-201-1/+1
| | | | llvm-svn: 108895
* turn this into a normal header.Chris Lattner2010-07-201-8/+11
| | | | llvm-svn: 108891
* hopefully heal the linux buildersChris Lattner2010-07-201-0/+1
| | | | llvm-svn: 108890
* there is no reason to dynamically generate a static header.Chris Lattner2010-07-204-16/+71
| | | | llvm-svn: 108887
* drop edinfo.inc into the objdir for src!=objdir builds.Chris Lattner2010-07-201-2/+2
| | | | llvm-svn: 108886
* Update header.Eric Christopher2010-07-201-1/+1
| | | | llvm-svn: 108883
* hopefully teach cmake to build the .inc file.Chris Lattner2010-07-201-0/+9
| | | | llvm-svn: 108874
* cmake tooChris Lattner2010-07-201-0/+6
| | | | llvm-svn: 108872
* forgot to add a fileChris Lattner2010-07-201-0/+21
| | | | llvm-svn: 108870
* start straightening out libedis's dependencies and make it fitChris Lattner2010-07-208-0/+1778
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
OpenPOWER on IntegriCloud