summaryrefslogtreecommitdiffstats
path: root/llvm/lib/Target/X86/Disassembler/X86DisassemblerDecoder.c
Commit message (Collapse)AuthorAgeFilesLines
...
* Add disassembler support for VPERMIL2PD and VPERMIL2PS.Craig Topper2011-12-301-0/+10
| | | | llvm-svn: 147368
* More AVX2 instructions and their intrinsics.Craig Topper2011-11-061-4/+7
| | | | llvm-svn: 143895
* Fix disassembling of popcntw. Also remove some code that says it accounts ↵Craig Topper2011-10-111-68/+0
| | | | | | for 64BIT_REXW_XD not existing, but it does exist. llvm-svn: 141642
* Change C++ style comments to C style comments in X86 disassembler. Patch ↵Craig Topper2011-10-051-2/+2
| | | | | | from Joe Abbey. llvm-svn: 141162
* Add support in the disassembler for ignoring the L-bit on certain VEX ↵Craig Topper2011-10-041-6/+36
| | | | | | instructions. Mark instructions that have this behavior. Fixes PR10676. llvm-svn: 141065
* Treat VEX.vvvv as a 3-bit field outside of 64-bit mode. Prevents access to ↵Craig Topper2011-10-031-0/+3
| | | | | | registers xmm8-xmm15 outside 64-bit mode. llvm-svn: 140997
* Fix VEX disassembling to ignore REX.RXBW bits in 32-bit mode.Craig Topper2011-10-031-9/+13
| | | | llvm-svn: 140993
* Special case disassembler handling of REX.B prefix on NOP instruction to ↵Craig Topper2011-10-021-2/+39
| | | | | | decode as XCHG R8D, EAX instead. Fixes PR10344. llvm-svn: 140971
* Fix VEX decoding in i386 mode. Fixes PR11008.Craig Topper2011-09-261-2/+2
| | | | llvm-svn: 140515
* Only disassembler instructions with vvvv != 1111 if the instruction actually ↵Craig Topper2011-09-131-4/+13
| | | | | | uses the vvvv field to encode an operand. Fixes PR10851. llvm-svn: 139591
* Add support for the VIA PadLock instructions.Joerg Sonnenberger2011-04-041-0/+30
| | | | llvm-svn: 128826
* X86 table-generator and disassembler support for the AVXSean Callanan2011-03-151-27/+222
| | | | | | | | | 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
* Silence enum conversion warnings.Benjamin Kramer2011-02-271-2/+2
| | | | llvm-svn: 126578
* Fixed a bug in the disassembler where the mandatory 0x66Sean Callanan2011-02-021-0/+1
| | | | | | | | prefix would be misinterpreted in some cases on 32-bit x86 platforms. Thanks to Olivier Meurant for identifying the bug. llvm-svn: 124709
* Null initialize a few variables flagged byTed Kremenek2011-01-231-1/+1
| | | | | | | | | | clang's -Wuninitialized-experimental warning. While these don't look like real bugs, clang's -Wuninitialized-experimental analysis is stricter than GCC's, and these fixes have the benefit of being general nice cleanups. llvm-svn: 124073
* Correctly disassemble truncated asm.Rafael Espindola2011-01-061-2/+4
| | | | | | Patch by Richard Simth. llvm-svn: 122962
* Make the disassembler tables const so they end up in read-only memory.Benjamin Kramer2010-10-231-7/+7
| | | | llvm-svn: 117206
* Remove a define which is never referenced.Chandler Carruth2010-10-231-6/+0
| | | | llvm-svn: 117202
* Fixed handling of immediate operand sizes, whichSean Callanan2010-10-221-1/+1
| | | | | | | | | weren't properly reflecting the OperandSize attribute of the instruction leading to improper decoding of certain instructions with the 66H prefix. Also added a test case for this. llvm-svn: 117084
* Eliminated the classification of control registers into %ecr_Sean Callanan2010-05-061-6/+2
| | | | | | | | | 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
* add a missing break back, patch by Nico Schmidt!Chris Lattner2010-04-161-0/+1
| | | | llvm-svn: 101538
* Fixed a bug where the disassembler would allow an immediateSean Callanan2010-04-071-0/+3
| | | | | | | | | argument that had to be between 0 and 7 to have any value, firing an assert later in the AsmPrinter. Now, the disassembler rejects instructions with out-of-range values for that immediate. llvm-svn: 100694
* Fixes to the X86 disassembler. The disassembler will nowSean Callanan2010-04-021-73/+96
| | | | | | | return an error status in all failure cases, printing messages to debugs() only when debugging is enabled. llvm-svn: 100229
* Try to fix a valgrind error on 32 bit platforms: use %zu instead of %llu to ↵Benjamin Kramer2010-03-181-2/+2
| | | | | | format a size_t. llvm-svn: 98819
* Removed the "inline" keyword from the disassembler decoder,Sean Callanan2009-12-221-30/+30
| | | | | | because the Visual C++ build does not build .c files as C99 llvm-svn: 91935
* Changed REG_* to MODRM_REG_* to avoid conflictsSean Callanan2009-12-221-15/+19
| | | | | | with symbols in AuroraUX's global namespace. llvm-svn: 91879
* Fix some may-be-uninitialized var warnings.Daniel Dunbar2009-12-221-3/+3
| | | | llvm-svn: 91878
* Fixed library dependencies between the X86 disassembler andSean Callanan2009-12-221-6/+0
| | | | | | X86 codegen that were causing circular symbol dependencies. llvm-svn: 91871
* #if 0 out X86 disassembler for now, it is breaking the build in multiple places.Daniel Dunbar2009-12-191-0/+6
| | | | llvm-svn: 91778
* rename dprintf to dbgpritnf, in order to fix build with glibc (which already ↵Nuno Lopes2009-12-191-29/+29
| | | | | | defines dprintf in stdio.h llvm-svn: 91775
* Use memset instead of bzero, its more portable.Daniel Dunbar2009-12-191-2/+2
| | | | llvm-svn: 91754
* Table-driven disassembler for the X86 architecture (16-, 32-, and 64-bit Sean Callanan2009-12-191-0/+1361
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