LLVM backend for 6502
Go to file
Ahmed Bougacha 3ddc32292d [MC] Reset the MCInst in the matcher function before adding opcode/operands.
On X86, the Intel asm parser tries to match all memory operand sizes when
none is explicitly specified.  For LEA, which doesn't really have a memory
operand (just a pointer one), this results in multiple successful matches,
one for each memory size.  There's no error because it's same opcode, so
really, it's just one match.  However, the tablegen'd matcher function
adds opcode/operands to the passed MCInst, and this results in multiple
duplicated operands.

This commit clears the MCInst in the tablegen'd matcher function.
We sometimes clear it when the match failed, so there's no expectation of
keeping the previous content anyway.

Differential Revision: http://reviews.llvm.org/D6670


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@224347 91177308-0d34-0410-b5e6-96231b3b80d8
2014-12-16 18:05:28 +00:00
autoconf
bindings
cmake
docs IR: Make metadata typeless in assembly 2014-12-15 19:07:53 +00:00
examples
include Remove the last unnecessary member variable of mapped_file_region. NFC. 2014-12-16 03:10:29 +00:00
lib [Hexagon] Adding absolute value, and negate with saturation 2014-12-16 17:44:49 +00:00
projects
test [MC] Reset the MCInst in the matcher function before adding opcode/operands. 2014-12-16 18:05:28 +00:00
tools Fix a bug in llvm-objdump’s -private-headers for 32-bit Mach-O files 2014-12-16 01:14:45 +00:00
unittests Remove 'metadata' from comments 2014-12-16 07:45:05 +00:00
utils [MC] Reset the MCInst in the matcher function before adding opcode/operands. 2014-12-16 18:05:28 +00:00
.arcconfig
.clang-format
.clang-tidy
.gitignore
CMakeLists.txt
CODE_OWNERS.TXT
configure
CREDITS.TXT
LICENSE.TXT
llvm.spec.in
LLVMBuild.txt
Makefile
Makefile.common
Makefile.config.in
Makefile.rules
README.txt

Low Level Virtual Machine (LLVM)
================================

This directory and its subdirectories contain source code for the Low Level
Virtual Machine, a toolkit for the construction of highly optimized compilers,
optimizers, and runtime environments.

LLVM is open source software. You may freely distribute it under the terms of
the license agreement found in LICENSE.txt.

Please see the documentation provided in docs/ for further
assistance with LLVM, and in particular docs/GettingStarted.rst for getting
started with LLVM and docs/README.txt for an overview of LLVM's
documentation setup.

If you're writing a package for LLVM, see docs/Packaging.rst for our
suggestions.