| Commit message (Collapse) | Author | Age | Files | Lines |
... | |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
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
|
|
|
|
|
|
| |
It can be reverted a few days later, after X86Disassembler.d is updated not to contain "X86Disassembler.c".
llvm-svn: 206758
|
|
|
|
| |
llvm-svn: 206723
|
|
|
|
| |
llvm-svn: 206722
|
|
|
|
| |
llvm-svn: 206721
|
|
|
|
|
|
| |
and ContextDecision in different source files (depending on #define magic).
llvm-svn: 206720
|
|
|
|
|
|
| |
different source files.
llvm-svn: 206719
|
|
|
|
|
|
| |
they need to...
llvm-svn: 206718
|
|
|
|
|
|
|
|
|
|
| |
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
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
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
|
|
|
|
| |
llvm-svn: 206127
|
|
|
|
|
|
| |
particular this makes a too short instruction with a missing SIB byte fail.
llvm-svn: 204305
|
|
|
|
|
|
| |
class.
llvm-svn: 203418
|
|
|
|
| |
llvm-svn: 203093
|
|
|
|
|
|
| |
0xa6/0xa7, and adding MRM_C0/MRM_E0 forms. Removes 376K from the disassembler tables.
llvm-svn: 201641
|
|
|
|
|
|
| |
should ignore the base register entirely. Mod=01/10 should treat this as R13 plus displacment. Fixes PR18860.
llvm-svn: 201507
|
|
|
|
|
|
| |
lib/Target/X86/Disassembler/X86DisassemblerDecoder.c:1361:7: error: C++ style comments are not allowed in ISO C90
llvm-svn: 200153
|
|
|
|
|
|
| |
Modified from patch by James Courtier-Dutton.
llvm-svn: 200100
|
|
|
|
|
|
|
| |
Sweep the codebase for common typos. Includes some changes to visible function
names that were misspelt.
llvm-svn: 200018
|
|
|
|
| |
llvm-svn: 199855
|
|
|
|
|
|
| |
Found by -Wdocumentation.
llvm-svn: 199814
|
|
|
|
| |
llvm-svn: 199811
|
|
|
|
| |
llvm-svn: 199804
|
|
|
|
| |
llvm-svn: 199803
|
|
|
|
|
|
|
|
|
|
| |
The addition of IC_OPSIZE_ADSIZE in r198759 wasn't quite complete. It
also turns out to have been unnecessary. The disassembler handles the
AdSize prefix for itself, and doesn't care about the difference between
(e.g.) MOV8ao8 and MOB8ao8_16 definitions. So just let them coexist and
don't worry about it.
llvm-svn: 199654
|
|
|
|
| |
llvm-svn: 199653
|
|
|
|
|
|
|
|
|
|
| |
When disassembling in 16-bit mode the meaning of the OpSize bit is
inverted. Instructions found in the IC_OPSIZE context will actually
*not* have the 0x66 prefix, and instructions in the IC context will
have the 0x66 prefix. Make use of the existing special-case handling
for the 0x66 prefix being in the wrong place, to cope with this.
llvm-svn: 199650
|
|
|
|
|
|
|
|
|
|
|
|
| |
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
|
|
|
|
|
|
| |
don't use the size fields it controls.
llvm-svn: 199470
|
|
|
|
|
|
| |
encoded and disassembled with a segment override prefix. Fixes PR16962.
llvm-svn: 199364
|
|
|
|
|
|
|
|
|
|
| |
It seems there is no separate instruction class for having AdSize *and*
OpSize bits set, which is required in order to disambiguate between all
these instructions. So add that to the disassembler.
Hm, perhaps we do need an AdSize16 bit after all?
llvm-svn: 198759
|
|
|
|
|
|
| |
used. Removes ~11.5K from static tables.
llvm-svn: 198284
|
|
|
|
|
|
| |
[-Wdocumentation]
llvm-svn: 198279
|
|
|
|
|
|
| |
really more like OrRegFrm so we don't need a difference since we can just mask bits.
llvm-svn: 198278
|
|
|
|
|
|
| |
instructions. These instructions can be handled by MRMXr instead.
llvm-svn: 198276
|
|
|
|
|
|
| |
realized we had no FP disassembler test cases.
llvm-svn: 198265
|
|
|
|
| |
llvm-svn: 198263
|
|
|
|
|
|
| |
can be handled by MRMXr instead.
llvm-svn: 198238
|
|
|
|
| |
llvm-svn: 198013
|
|
|
|
|
|
|
|
|
| |
Added scalar compare VCMPSS, VCMPSD.
Implemented LowerSELECT for scalar FP operations.
I replaced FSETCCss, FSETCCsd with one node type FSETCCs.
Node extract_vector_elt(v16i1/v8i1, idx) returns an element of type i1.
llvm-svn: 197384
|
|
|
|
| |
llvm-svn: 196988
|
|
|
|
|
|
|
|
|
| |
CommonTableGen.
add_public_tablegen_target adds *CommonTableGen to LLVM_COMMON_DEPENDS.
LLVM_COMMON_DEPENDS affects add_llvm_library (and other add_target stuff) within its scope.
llvm-svn: 195927
|
|
|
|
|
|
| |
I forgot to commit them. They were staging in my local repo.
llvm-svn: 195924
|
|
|
|
| |
llvm-svn: 194062
|
|
|
|
|
|
| |
added EVEX_KZ to tablegen
llvm-svn: 193959
|
|
|
|
|
|
| |
build bots.
llvm-svn: 191880
|
|
|
|
| |
llvm-svn: 191877
|
|
|
|
| |
llvm-svn: 191874
|
|
|
|
| |
llvm-svn: 191732
|
|
|
|
| |
llvm-svn: 191731
|