summaryrefslogtreecommitdiffstats
path: root/llvm/lib/Target/X86/Disassembler/X86DisassemblerDecoder.h
Commit message (Collapse)AuthorAgeFilesLines
* Change unsigned to a uint16_t in static disassembler tables to reduce the ↵Craig Topper2012-09-111-1/+1
| | | | | | table size. llvm-svn: 163594
* Use const properly so that we dont remove const qualifier from region and MIIRoman Divacky2012-09-051-5/+5
| | | | | | by casting. Found with gcc48. llvm-svn: 163247
* Add more indirection to the disassembler tables to reduce amount of space ↵Craig Topper2012-08-011-1/+4
| | | | | | used to store the operand types and encodings. Store only the unique combinations in a separate table and store indices in the instruction table. Saves about 32K of static data. llvm-svn: 161101
* Tidy up trailing whitespaceCraig Topper2012-07-311-33/+33
| | | | llvm-svn: 161027
* X86: add GATHER intrinsics (AVX2) in LLVMManman Ren2012-06-261-0/+3
| | | | | | | | | | | | Support the following intrinsics: llvm.x86.avx2.gather.d.pd, llvm.x86.avx2.gather.q.pd llvm.x86.avx2.gather.d.pd.256, llvm.x86.avx2.gather.q.pd.256 llvm.x86.avx2.gather.d.ps, llvm.x86.avx2.gather.q.ps llvm.x86.avx2.gather.d.ps.256, llvm.x86.avx2.gather.q.ps.256 Modified Disassembler to handle VSIB addressing mode. llvm-svn: 159221
* Updated the llvm-mc disassembler C API to support for the X86 target.Kevin Enderby2012-02-231-0/+5
| | | | | | | | | | | | | | | | | | | | | rdar://10873652 As part of this I updated the llvm-mc disassembler C API to always call the SymbolLookUp call back even if there is no getOpInfo call back. If there is a getOpInfo call back that is tried first and then if that gets no information then the SymbolLookUp is called. I also made the code more robust by memset(3)'ing to zero the LLVMOpInfo1 struct before then setting SymbolicOp.Value before for the call to getOpInfo. And also don't use any values from the LLVMOpInfo1 struct if getOpInfo returns 0. And also don't use any of the ReferenceType or ReferenceName values from SymbolLookUp if it returns NULL. rdar://10873563 and rdar://10873683 For the X86 target also fixed bugs so the annotations get printed. Also fixed a few places in the ARM target that was not producing symbolic operands for some instructions. rdar://10878166 llvm-svn: 151267
* Emacs-tag and some comment fix for all ARM, CellSPU, Hexagon, MBlaze, ↵Jia Liu2012-02-181-1/+1
| | | | | | MSP430, PPC, PTX, Sparc, X86, XCore. llvm-svn: 150878
* Don't mix declarations and code.Benjamin Kramer2012-02-111-1/+1
| | | | llvm-svn: 150305
* Reuse the enum names from X86Desc in the X86Disassembler.Benjamin Kramer2012-02-111-1/+3
| | | | | | | This requires some gymnastics to make it available for C code. Remove the names from the disassembler tables, making them relocation free. llvm-svn: 150303
* Flatten some of the arrays in the X86 disassembler tables to reduce space ↵Craig Topper2012-02-091-1/+1
| | | | | | needed to store pointers on 64-bit hosts and reduce relocations needed at startup. Part of PR11953. llvm-svn: 150161
* Fix a ton of comment typos found by codespell. Patch byChris Lattner2011-04-151-1/+1
| | | | | | Luis Felipe Strano Moraes! llvm-svn: 129558
* X86 table-generator and disassembler support for the AVXSean Callanan2011-03-151-13/+73
| | | | | | | | | instruction set. This code adds support for the VEX prefix and for the YMM registers accessible on AVX-enabled architectures. Instruction table support that enables AVX instructions for the disassembler is in an upcoming patch. llvm-svn: 127644
* Fixed a bug in the X86 disassembler where a member of theSean Callanan2011-02-211-1/+1
| | | | | | | | X86 instruction decode structure was being interpreted as being in units of bits, although it is actually stored in units of bytes. llvm-svn: 126147
* Make the disassembler tables const so they end up in read-only memory.Benjamin Kramer2010-10-231-2/+2
| | | | llvm-svn: 117206
* Eliminated the classification of control registers into %ecr_Sean Callanan2010-05-061-22/+11
| | | | | | | | | and %rcr_, leaving just %cr_ which is what people expect. Updated the disassembler to support this unified register set. Added a testcase to verify that the registers continue to be decoded correctly. llvm-svn: 103196
* Fixes to the X86 disassembler. The disassembler will nowSean Callanan2010-04-021-0/+11
| | | | | | | return an error status in all failure cases, printing messages to debugs() only when debugging is enabled. llvm-svn: 100229
* More fixes for Visual C++. Replaced several very smallSean Callanan2009-12-231-10/+10
| | | | | | static inline functions with macros. llvm-svn: 91973
* Changed REG_* to MODRM_REG_* to avoid conflictsSean Callanan2009-12-221-2/+2
| | | | | | with symbols in AuroraUX's global namespace. llvm-svn: 91879
* Table-driven disassembler for the X86 architecture (16-, 32-, and 64-bit Sean Callanan2009-12-191-0/+515
incarnations), integrated into the MC framework. The disassembler is table-driven, using a custom TableGen backend to generate hierarchical tables optimized for fast decode. The disassembler consumes MemoryObjects and produces arrays of MCInsts, adhering to the abstract base class MCDisassembler (llvm/MC/MCDisassembler.h). The disassembler is documented in detail in - lib/Target/X86/Disassembler/X86Disassembler.cpp (disassembler runtime) - utils/TableGen/DisassemblerEmitter.cpp (table emitter) You can test the disassembler by running llvm-mc -disassemble for i386 or x86_64 targets. Please let me know if you encounter any problems with it. llvm-svn: 91749
OpenPOWER on IntegriCloud