History log of /llvm-project/llvm/lib/Target/X86/Disassembler/X86Disassembler.cpp (Results 101 – 125 of 170)
Revision (<<< Hide revision tags) (Show revision tags >>>) Date Author Comments
# 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


1234567