#
7fc5b874 |
| 12-Nov-2014 |
Rafael Espindola <rafael.espindola@gmail.com> |
Pass an ArrayRef to MCDisassembler::getInstruction.
With this patch MCDisassembler::getInstruction takes an ArrayRef<uint8_t> instead of a MemoryObject.
Even on X86 there is a maximum size an instr
Pass an ArrayRef to MCDisassembler::getInstruction.
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
show more ...
|
#
4aa6bea7 |
| 10-Nov-2014 |
Rafael Espindola <rafael.espindola@gmail.com> |
Misc style fixes. NFC.
This fixes a few cases of:
* Wrong variable name style. * Lines longer than 80 columns. * Repeated names in comments. * clang-format of the above.
This make the next patch a
Misc style fixes. NFC.
This fixes a few cases of:
* Wrong variable name style. * Lines longer than 80 columns. * Repeated names in comments. * clang-format of the above.
This make the next patch a lot easier to read.
llvm-svn: 221615
show more ...
|
Revision tags: llvmorg-3.5.0, llvmorg-3.5.0-rc4, llvmorg-3.5.0-rc3, llvmorg-3.5.0-rc2, llvmorg-3.5.0-rc1 |
|
#
5933c2f8 |
| 17-Jul-2014 |
Adam Nemet <anemet@apple.com> |
[X86] AVX512: Add disassembler support for compressed displacement
There are two parts here. First is to modify tablegen to adjust the encoding type ENCODING_RM with the scaling factor.
The second
[X86] AVX512: Add disassembler support for compressed displacement
There are two parts here. First is to modify tablegen to adjust the encoding type ENCODING_RM with the scaling factor.
The second is to use the new encoding types to compute the correct displacement in the decoder.
Fixes <rdar://problem/17608489>
llvm-svn: 213281
show more ...
|
Revision tags: llvmorg-3.4.2, llvmorg-3.4.2-rc1 |
|
#
31998381 |
| 28-Apr-2014 |
Patrik Hagglund <patrik.h.hagglund@ericsson.com> |
Fix gcc -Wsign-compare warning in X86DisassemblerTables.cpp.
X86_MAX_OPERANDS is changed to unsigned.
Also, add range-based for loops for affected loops. This in turn needed an ArrayRef instead of
Fix gcc -Wsign-compare warning in X86DisassemblerTables.cpp.
X86_MAX_OPERANDS is changed to unsigned.
Also, add range-based for loops for affected loops. This in turn needed an ArrayRef instead of a pointer-to-array in InternalInstruction.
llvm-svn: 207413
show more ...
|
Revision tags: llvmorg-3.4.1, llvmorg-3.4.1-rc2 |
|
#
062a2bae |
| 25-Apr-2014 |
Craig Topper <craig.topper@gmail.com> |
[C++] Use 'nullptr'. Target edition.
llvm-svn: 207197
|
#
8ac0bf96 |
| 23-Apr-2014 |
Elena Demikhovsky <elena.demikhovsky@intel.com> |
X86Disassembler - fixed a bug in immediate print
llvm-svn: 206953
|
#
d174b72a |
| 22-Apr-2014 |
Chandler Carruth <chandlerc@gmail.com> |
[cleanup] Lift using directives, DEBUG_TYPE definitions, and even some system headers above the includes of generated '.inc' files that actually contain code. In a few targets this was already done p
[cleanup] Lift using directives, DEBUG_TYPE definitions, and even some system headers above the includes of generated '.inc' files that actually contain code. In a few targets this was already done pretty consistently, but it wasn't done *really* consistently anywhere. It is strictly cleaner IMO and necessary in a bunch of places where the DEBUG_TYPE is referenced from the generated code. Consistency with the necessary places trumps. Hopefully the build bots are OK with the movement of intrin.h...
llvm-svn: 206838
show more ...
|
#
e96dd897 |
| 21-Apr-2014 |
Chandler Carruth <chandlerc@gmail.com> |
[Modules] Make Support/Debug.h modular. This requires it to not change behavior based on other files defining DEBUG_TYPE, which means it cannot define DEBUG_TYPE at all. This is actually better IMO a
[Modules] Make Support/Debug.h modular. This requires it to not change behavior based on other files defining DEBUG_TYPE, which means it cannot define DEBUG_TYPE at all. This is actually better IMO as it forces folks to define relevant DEBUG_TYPEs for their files. However, it requires all files that currently use DEBUG(...) to define a DEBUG_TYPE if they don't already. I've updated all such files in LLVM and will do the same for other upstream projects.
This still leaves one important change in how LLVM uses the DEBUG_TYPE macro going forward: we need to only define the macro *after* header files have been #include-ed. Previously, this wasn't possible because Debug.h required the macro to be pre-defined. This commit removes that. By defining DEBUG_TYPE after the includes two things are fixed:
- Header files that need to provide a DEBUG_TYPE for some inline code can do so by defining the macro before their inline code and undef-ing it afterward so the macro does not escape.
- We no longer have rampant ODR violations due to including headers with different DEBUG_TYPE definitions. This may be mostly an academic violation today, but with modules these types of violations are easy to check for and potentially very relevant.
Where necessary to suppor headers with DEBUG_TYPE, I have moved the definitions below the includes in this commit. I plan to move the rest of the DEBUG_TYPE macros in LLVM in subsequent commits; this one is big enough.
The comments in Debug.h, which were hilariously out of date already, have been updated to reflect the recommended practice going forward.
llvm-svn: 206822
show more ...
|
#
89ee75d7 |
| 20-Apr-2014 |
Richard Smith <richard-llvm@metafoo.co.uk> |
What year is it! This file has no reason to be written in C, and has doubly no reason to expose a global symbol 'decodeInstruction' nor to pollute the global scope with a bunch of external linkage en
What year is it! This file has no reason to be written in C, and has doubly no reason to expose a global symbol 'decodeInstruction' nor to pollute the global scope with a bunch of external linkage entities (some of which conflict with others elsewhere in LLVM).
This is just the initial transition to C++; more cleanups to follow.
llvm-svn: 206717
show more ...
|
#
a1bc0f56 |
| 15-Apr-2014 |
Lang Hames <lhames@gmail.com> |
[MC] Require an MCContext when constructing an MCDisassembler.
This patch re-introduces the MCContext member that was removed from MCDisassembler in r206063, and requires that an MCContext be passed
[MC] Require an MCContext when constructing an MCDisassembler.
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
show more ...
|
#
0563ca1b |
| 13-Apr-2014 |
Lang Hames <lhames@gmail.com> |
[X86] unique_ptr'ify one of X86GenericDisassembler's members.
llvm-svn: 206127
|
Revision tags: llvmorg-3.4.1-rc1 |
|
#
372f05d5 |
| 23-Jan-2014 |
NAKAMURA Takumi <geek4civic@gmail.com> |
X86Disassembler.cpp: Fix @param introduced in r199804. [-Wdocumentation]
llvm-svn: 199855
|
#
f5f23b09 |
| 22-Jan-2014 |
Benjamin Kramer <benny.kra@googlemail.com> |
Remove param doxygen comment for non-existing parameter.
Found by -Wdocumentation.
llvm-svn: 199814
|
#
fee418c2 |
| 22-Jan-2014 |
David Woodhouse <dwmw2@infradead.org> |
[x86] Fix uninitialized variable warning in translate{Src,Dst}Index
llvm-svn: 199811
|
#
b33c2ef2 |
| 22-Jan-2014 |
David Woodhouse <dwmw2@infradead.org> |
[x86] Allow address-size overrides for STOS[BWLQ] (PR9385)
llvm-svn: 199804
|
#
2ef8d9c0 |
| 22-Jan-2014 |
David Woodhouse <dwmw2@infradead.org> |
[x86] Allow segment and address-size overrides for LODS[BWLQ] (PR9385)
llvm-svn: 199803
|
#
7dd21824 |
| 20-Jan-2014 |
David Woodhouse <dwmw2@infradead.org> |
[x86] Infer disassembler mode from SubtargetInfo feature bits
Aside from cleaning up the code, this also adds support for the -code16 environment and actually enables the MODE_16BIT mode that was pr
[x86] Infer disassembler mode from SubtargetInfo feature bits
Aside from cleaning up the code, this also adds support for the -code16 environment and actually enables the MODE_16BIT mode that was previously not accessible.
There is no point adding any testing for 16-bit yet though; basically nothing will work because we aren't handling the OpSize prefix correctly for 16-bit mode.
llvm-svn: 199649
show more ...
|
#
35da3d19 |
| 16-Jan-2014 |
Craig Topper <craig.topper@gmail.com> |
Allow x86 mov instructions to/from memory with absolute address to be encoded and disassembled with a segment override prefix. Fixes PR16962.
llvm-svn: 199364
|
#
545b6803 |
| 01-Jan-2014 |
NAKAMURA Takumi <geek4civic@gmail.com> |
X86Disassembler.cpp: Prune stray @return on translateFPRegister(). [-Wdocumentation]
llvm-svn: 198279
|
#
91551186 |
| 01-Jan-2014 |
Craig Topper <craig.topper@gmail.com> |
Remove need for MODIFIER_OPCODE in the disassembler tables. AddRegFrms are really more like OrRegFrm so we don't need a difference since we can just mask bits.
llvm-svn: 198278
|
#
623b0d64 |
| 01-Jan-2014 |
Craig Topper <craig.topper@gmail.com> |
Second attempt at Removing special form of AddRegFrm used by FP instructions. These instructions can be handled by MRMXr instead.
llvm-svn: 198276
|
#
371e3638 |
| 25-Dec-2013 |
Elena Demikhovsky <elena.demikhovsky@intel.com> |
AVX-512: decoder for AVX-512, made by Alexey Bader.
llvm-svn: 198013
|
Revision tags: llvmorg-3.4.0, llvmorg-3.4.0-rc3, llvmorg-3.4.0-rc2, llvmorg-3.4.0-rc1 |
|
#
18854173 |
| 25-Aug-2013 |
Craig Topper <craig.topper@gmail.com> |
First round of fixes for the x86 fixes for the x86 move accumulator from/to memory offset instructions.
-Assembly parser now properly check the size of the memory operation specified in intel syntax
First round of fixes for the x86 fixes for the x86 move accumulator from/to memory offset instructions.
-Assembly parser now properly check the size of the memory operation specified in intel syntax. So 'mov word ptr [5], al' is no longer accepted. -x86-32 disassembly of these instructions no longer sign extends the 32-bit address immediate based on size. -Intel syntax printing prints the ptr size and places brackets around the address immediate.
Known remaining issues with these instructions: -Segment override prefix is not supported. PR16962 and PR16961. -Immediate size should be changed by address size prefix.
llvm-svn: 189201
show more ...
|
#
092e2fe4 |
| 24-Aug-2013 |
Craig Topper <craig.topper@gmail.com> |
Remove trailing whitespace.
llvm-svn: 189178
|
#
003e7d73 |
| 28-Jul-2013 |
Elena Demikhovsky <elena.demikhovsky@intel.com> |
Added encoding prefixes for KNL instructions (EVEX). Added 512-bit operands printing. Added instruction formats for KNL instructions.
llvm-svn: 187324
|