|  | Commit message (Collapse) | Author | Age | Files | Lines | 
|---|
| | 
| 
| 
| 
| 
| | Luis Felipe Strano Moraes!
llvm-svn: 129558 | 
| | 
| 
| 
| | llvm-svn: 128826 | 
| | 
| 
| 
| 
| 
| 
| 
| 
| | 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 | 
| | 
| 
| 
| | llvm-svn: 126578 | 
| | 
| 
| 
| 
| 
| 
| 
| | X86 instruction decode structure was being interpreted as
being in units of bits, although it is actually stored in
units of bytes.
llvm-svn: 126147 | 
| | 
| 
| 
| 
| 
| 
| 
| | prefix would be misinterpreted in some cases on 32-bit
x86 platforms.  Thanks to Olivier Meurant for identifying
the bug.
llvm-svn: 124709 | 
| | 
| 
| 
| 
| 
| 
| 
| 
| 
| | 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 | 
| | 
| 
| 
| 
| 
| | Patch by Richard Simth.
llvm-svn: 122962 | 
| | 
| 
| 
| 
| 
| | files in Target/ARM and Target/X86.
llvm-svn: 122623 | 
| | 
| 
| 
| | llvm-svn: 120298 | 
| | 
| 
| 
| | llvm-svn: 117206 | 
| | 
| 
| 
| | llvm-svn: 117202 | 
| | 
| 
| 
| 
| 
| 
| 
| 
| | 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 | 
| | 
| 
| 
| 
| 
| 
| 
| 
| 
| | operands.
With this done, we can remove the _Int suffixes from the round instructions
without the disassembler blowing up.  This allows the assembler to support
them, implementing rdar://8456376 - llvm-mc rejects 'roundss'
llvm-svn: 115019 | 
| | 
| 
| 
| 
| 
| 
| 
| 
| 
| | This reverts commit r113632
Conflicts:
	cmake/modules/AddLLVM.cmake
llvm-svn: 113819 | 
| | 
| 
| 
| | llvm-svn: 113632 | 
| | 
| 
| 
| 
| 
| 
| | disassembler.  Remove some code from the disassembler to
compensate, unbreaking disassembly of lea's.
llvm-svn: 108226 | 
| | 
| 
| 
| | llvm-svn: 105527 | 
| | 
| 
| 
| 
| 
| 
| 
| 
| | 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 | 
| | 
| 
| 
| 
| 
| 
| 
| | that was causing PC-relative branch targets to be
evaluated incorrectly.  Also added support for
checking operand values to the llvm-mc tester.
llvm-svn: 103128 | 
| | 
| 
| 
| 
| 
| | an optimizer infinite loop on the file, PR6866.
llvm-svn: 101854 | 
| | 
| 
| 
| | llvm-svn: 101538 | 
| | 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| | code.  It used to #include the enhanced disassembly
information for the targets it supported straight
out of lib/Target/{X86,ARM,...} but now it uses a
new interface provided by MCDisassembler, and (so
far) implemented by X86 and ARM.
Also removed hacky #define-controlled initialization
of targets in edis.  If clients only want edis to
initialize a limited set of targets, they can set
--enable-targets on the configure command line.
llvm-svn: 101179 | 
| | 
| 
| 
| 
| 
| 
| 
| 
| | 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 | 
| | 
| 
| 
| 
| 
| 
| | return an error status in all failure cases, printing
messages to debugs() only when debugging is enabled.
llvm-svn: 100229 | 
| | 
| 
| 
| | llvm-svn: 99097 | 
| | 
| 
| 
| 
| 
| | format a size_t.
llvm-svn: 98819 | 
| | 
| 
| 
| | llvm-svn: 98394 | 
| | 
| 
| 
| | llvm-svn: 94378 | 
| | 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| | missing ones are libsupport, libsystem and libvmcore.  libvmcore is
currently blocked on bugpoint, which uses EH.  Once it stops using
EH, we can switch it off.
This #if 0's out 3 unit tests, because gtest requires RTTI information.
Suggestions welcome on how to fix this.
llvm-svn: 94164 | 
| | 
| 
| 
| 
| 
| | static inline functions with macros.
llvm-svn: 91973 | 
| | 
| 
| 
| 
| 
| | because the Visual C++ build does not build .c files as C99
llvm-svn: 91935 | 
| | 
| 
| 
| 
| 
| 
| 
| | Made LEA memory operands emit only 4 MCInst operands.
Made the scale operand equal 1 for instructions that have no
SIB byte.
llvm-svn: 91919 | 
| | 
| 
| 
| 
| 
| | path. Fixes CMake build
llvm-svn: 91908 | 
| | 
| 
| 
| 
| 
| | with symbols in AuroraUX's global namespace.
llvm-svn: 91879 | 
| | 
| 
| 
| | llvm-svn: 91878 | 
| | 
| 
| 
| 
| 
| | X86 codegen that were causing circular symbol dependencies.
llvm-svn: 91871 | 
| | 
| 
| 
| | llvm-svn: 91778 | 
| | 
| 
| 
| 
| 
| | defines dprintf in stdio.h
llvm-svn: 91775 | 
| | 
| 
| 
| | llvm-svn: 91754 | 
| | 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| | 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 | 
|  | llvm-svn: 89850 |