Commit message (Collapse) | Author | Age | Files | Lines | |
---|---|---|---|---|---|
* | Fix typo | Joerg Sonnenberger | 2012-10-29 | 1 | -2/+2 |
| | | | | llvm-svn: 166945 | ||||
* | Add a new compression type to ModRM table that detects when the memory modRM ↵ | Craig Topper | 2012-09-13 | 1 | -0/+4 |
| | | | | | | byte represent 8 instructions and the reg modRM byte represents up to 64 instructions. Reduces modRM table from 43k entreis to 25k entries. Based on a patch from Manman Ren. llvm-svn: 163774 | ||||
* | Use const properly so that we dont remove const qualifier from region and MII | Roman Divacky | 2012-09-05 | 1 | -3/+3 |
| | | | | | | by casting. Found with gcc48. llvm-svn: 163247 | ||||
* | Fix integer undefined behavior due to signed left shift overflow in LLVM. | Richard Smith | 2012-08-24 | 1 | -1/+1 |
| | | | | | | Reviewed offline by chandlerc. llvm-svn: 162623 | ||||
* | Add more indirection to the disassembler tables to reduce amount of space ↵ | Craig Topper | 2012-08-01 | 1 | -7/+9 |
| | | | | | | 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 | ||||
* | Add support for AVX enhanced comparison predicates. Patch from Kay Tiong Khoo. | Craig Topper | 2012-04-03 | 1 | -0/+3 |
| | | | | llvm-svn: 153935 | ||||
* | C files in llvm still have to be C89 compliant, remove C++-style comments. | Benjamin Kramer | 2012-03-10 | 1 | -4/+6 |
| | | | | llvm-svn: 152495 | ||||
* | Fix the x86 disassembler to at least print the lock prefix if it is the first | Kevin Enderby | 2012-03-09 | 1 | -0/+7 |
| | | | | | | | prefix. Added a FIXME to remind us this still does not work when it is not the first prefix. llvm-svn: 152414 | ||||
* | X86 disassembler support for jcxz, jecxz, and jrcxz. Fixes PR11643. Patch by ↵ | Craig Topper | 2012-02-27 | 1 | -0/+2 |
| | | | | | | Kay Tiong Khoo. llvm-svn: 151510 | ||||
* | Updated the llvm-mc disassembler C API to support for the X86 target. | Kevin Enderby | 2012-02-23 | 1 | -0/+2 |
| | | | | | | | | | | | | | | | | | | | | | 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 | ||||
* | Remove dead code. Improve llvm_unreachable text. Simplify some control flow. | Ahmed Charles | 2012-02-19 | 1 | -3/+1 |
| | | | | llvm-svn: 150918 | ||||
* | Emacs-tag and some comment fix for all ARM, CellSPU, Hexagon, MBlaze, ↵ | Jia Liu | 2012-02-18 | 1 | -1/+1 |
| | | | | | | MSP430, PPC, PTX, Sparc, X86, XCore. llvm-svn: 150878 | ||||
* | Don't mix declarations and code. | Benjamin Kramer | 2012-02-11 | 1 | -7/+5 |
| | | | | llvm-svn: 150305 | ||||
* | Reuse the enum names from X86Desc in the X86Disassembler. | Benjamin Kramer | 2012-02-11 | 1 | -4/+9 |
| | | | | | | | 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 | ||||
* | More tweaks to get the size of the X86 disassembler tables down. | Craig Topper | 2012-02-09 | 1 | -0/+4 |
| | | | | llvm-svn: 150167 | ||||
* | Flatten some of the arrays in the X86 disassembler tables to reduce space ↵ | Craig Topper | 2012-02-09 | 1 | -5/+4 |
| | | | | | | needed to store pointers on 64-bit hosts and reduce relocations needed at startup. Part of PR11953. llvm-svn: 150161 | ||||
* | Persuade GCC that there is nothing worth warning about here (there isn't). | Duncan Sands | 2012-02-05 | 1 | -1/+1 |
| | | | | llvm-svn: 149834 | ||||
* | Remove unnecessary default cases in switches that cover all enum values. | David Blaikie | 2012-01-10 | 1 | -3/+0 |
| | | | | llvm-svn: 147855 | ||||
* | Silence warnings of a mysterious compiler that still defaults to C89. | Benjamin Kramer | 2012-01-04 | 1 | -2/+2 |
| | | | | llvm-svn: 147553 | ||||
* | X86Disassembler: Fix undefined behavior found by GCC 4.6 | Benjamin Kramer | 2012-01-01 | 1 | -3/+5 |
| | | | | llvm-svn: 147404 | ||||
* | Add disassembler support for VPERMIL2PD and VPERMIL2PS. | Craig Topper | 2011-12-30 | 1 | -0/+10 |
| | | | | llvm-svn: 147368 | ||||
* | More AVX2 instructions and their intrinsics. | Craig Topper | 2011-11-06 | 1 | -4/+7 |
| | | | | llvm-svn: 143895 | ||||
* | Fix disassembling of popcntw. Also remove some code that says it accounts ↵ | Craig Topper | 2011-10-11 | 1 | -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 Topper | 2011-10-05 | 1 | -2/+2 |
| | | | | | | from Joe Abbey. llvm-svn: 141162 | ||||
* | Add support in the disassembler for ignoring the L-bit on certain VEX ↵ | Craig Topper | 2011-10-04 | 1 | -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 Topper | 2011-10-03 | 1 | -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 Topper | 2011-10-03 | 1 | -9/+13 |
| | | | | llvm-svn: 140993 | ||||
* | Special case disassembler handling of REX.B prefix on NOP instruction to ↵ | Craig Topper | 2011-10-02 | 1 | -2/+39 |
| | | | | | | decode as XCHG R8D, EAX instead. Fixes PR10344. llvm-svn: 140971 | ||||
* | Fix VEX decoding in i386 mode. Fixes PR11008. | Craig Topper | 2011-09-26 | 1 | -2/+2 |
| | | | | llvm-svn: 140515 | ||||
* | Only disassembler instructions with vvvv != 1111 if the instruction actually ↵ | Craig Topper | 2011-09-13 | 1 | -4/+13 |
| | | | | | | uses the vvvv field to encode an operand. Fixes PR10851. llvm-svn: 139591 | ||||
* | Add support for the VIA PadLock instructions. | Joerg Sonnenberger | 2011-04-04 | 1 | -0/+30 |
| | | | | llvm-svn: 128826 | ||||
* | X86 table-generator and disassembler support for the AVX | Sean Callanan | 2011-03-15 | 1 | -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 Kramer | 2011-02-27 | 1 | -2/+2 |
| | | | | llvm-svn: 126578 | ||||
* | Fixed a bug in the disassembler where the mandatory 0x66 | Sean Callanan | 2011-02-02 | 1 | -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 by | Ted Kremenek | 2011-01-23 | 1 | -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 Espindola | 2011-01-06 | 1 | -2/+4 |
| | | | | | | Patch by Richard Simth. llvm-svn: 122962 | ||||
* | Make the disassembler tables const so they end up in read-only memory. | Benjamin Kramer | 2010-10-23 | 1 | -7/+7 |
| | | | | llvm-svn: 117206 | ||||
* | Remove a define which is never referenced. | Chandler Carruth | 2010-10-23 | 1 | -6/+0 |
| | | | | llvm-svn: 117202 | ||||
* | Fixed handling of immediate operand sizes, which | Sean Callanan | 2010-10-22 | 1 | -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 Callanan | 2010-05-06 | 1 | -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 Lattner | 2010-04-16 | 1 | -0/+1 |
| | | | | llvm-svn: 101538 | ||||
* | Fixed a bug where the disassembler would allow an immediate | Sean Callanan | 2010-04-07 | 1 | -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 now | Sean Callanan | 2010-04-02 | 1 | -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 Kramer | 2010-03-18 | 1 | -2/+2 |
| | | | | | | format a size_t. llvm-svn: 98819 | ||||
* | Removed the "inline" keyword from the disassembler decoder, | Sean Callanan | 2009-12-22 | 1 | -30/+30 |
| | | | | | | because the Visual C++ build does not build .c files as C99 llvm-svn: 91935 | ||||
* | Changed REG_* to MODRM_REG_* to avoid conflicts | Sean Callanan | 2009-12-22 | 1 | -15/+19 |
| | | | | | | with symbols in AuroraUX's global namespace. llvm-svn: 91879 | ||||
* | Fix some may-be-uninitialized var warnings. | Daniel Dunbar | 2009-12-22 | 1 | -3/+3 |
| | | | | llvm-svn: 91878 | ||||
* | Fixed library dependencies between the X86 disassembler and | Sean Callanan | 2009-12-22 | 1 | -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 Dunbar | 2009-12-19 | 1 | -0/+6 |
| | | | | llvm-svn: 91778 | ||||
* | rename dprintf to dbgpritnf, in order to fix build with glibc (which already ↵ | Nuno Lopes | 2009-12-19 | 1 | -29/+29 |
| | | | | | | defines dprintf in stdio.h llvm-svn: 91775 |