diff options
author | Johnny Chen <johnny.chen@apple.com> | 2010-04-07 20:53:12 +0000 |
---|---|---|
committer | Johnny Chen <johnny.chen@apple.com> | 2010-04-07 20:53:12 +0000 |
commit | 3c500e6947ed8db719d87d47572de86e107ec094 (patch) | |
tree | 4440a8e0acbf1d62879630c247df92fa8d9b7d2b | |
parent | b39b7e5ebf477039a5c6064464ee10da21b5f726 (diff) | |
download | llvm-3c500e6947ed8db719d87d47572de86e107ec094.tar.gz llvm-3c500e6947ed8db719d87d47572de86e107ec094.tar.bz2 llvm-3c500e6947ed8db719d87d47572de86e107ec094.tar.xz |
Re-enable ARM/Thumb disassembler and add a workaround for a memcpy() call in
ARMDecoderEmitter.cpp, with FIXME comment.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@100690 91177308-0d34-0410-b5e6-96231b3b80d8
-rw-r--r-- | lib/Target/ARM/Disassembler/Makefile | 16 | ||||
-rw-r--r-- | lib/Target/ARM/Makefile | 5 | ||||
-rw-r--r-- | utils/TableGen/ARMDecoderEmitter.cpp | 8 |
3 files changed, 25 insertions, 4 deletions
diff --git a/lib/Target/ARM/Disassembler/Makefile b/lib/Target/ARM/Disassembler/Makefile new file mode 100644 index 0000000000..031b6aca5a --- /dev/null +++ b/lib/Target/ARM/Disassembler/Makefile @@ -0,0 +1,16 @@ +##===- lib/Target/ARM/Disassembler/Makefile ----------------*- Makefile -*-===## +# +# The LLVM Compiler Infrastructure +# +# This file is distributed under the University of Illinois Open Source +# License. See LICENSE.TXT for details. +# +##===----------------------------------------------------------------------===## + +LEVEL = ../../../.. +LIBRARYNAME = LLVMARMDisassembler + +# Hack: we need to include 'main' arm target directory to grab private headers +CPPFLAGS = -I$(PROJ_OBJ_DIR)/.. -I$(PROJ_SRC_DIR)/.. + +include $(LEVEL)/Makefile.common diff --git a/lib/Target/ARM/Makefile b/lib/Target/ARM/Makefile index a8dd38cb36..47922436f5 100644 --- a/lib/Target/ARM/Makefile +++ b/lib/Target/ARM/Makefile @@ -16,8 +16,9 @@ BUILT_SOURCES = ARMGenRegisterInfo.h.inc ARMGenRegisterNames.inc \ ARMGenRegisterInfo.inc ARMGenInstrNames.inc \ ARMGenInstrInfo.inc ARMGenAsmWriter.inc \ ARMGenDAGISel.inc ARMGenSubtarget.inc \ - ARMGenCodeEmitter.inc ARMGenCallingConv.inc + ARMGenCodeEmitter.inc ARMGenCallingConv.inc \ + ARMGenDecoderTables.inc -DIRS = AsmPrinter AsmParser TargetInfo +DIRS = AsmPrinter AsmParser Disassembler TargetInfo include $(LEVEL)/Makefile.common diff --git a/utils/TableGen/ARMDecoderEmitter.cpp b/utils/TableGen/ARMDecoderEmitter.cpp index 5fb8b6bfb2..230152195e 100644 --- a/utils/TableGen/ARMDecoderEmitter.cpp +++ b/utils/TableGen/ARMDecoderEmitter.cpp @@ -596,7 +596,11 @@ void Filter::recurse() { bit_value_t BitValueArray[BIT_WIDTH]; // Starts by inheriting our parent filter chooser's filter bit values. - memcpy(BitValueArray, Owner->FilterBitValues, sizeof(BitValueArray)); + bit_value_t *BitVals = Owner->FilterBitValues; + for (unsigned i = 0; i < BIT_WIDTH; ++i) + BitValueArray[i] = BitVals[i]; + // FIXME: memcpy() is optmized out with self-hosting llvm-gcc (-O1 and -O2). + //memcpy(BitValueArray, Owner->FilterBitValues, sizeof(BitValueArray)); unsigned bitIndex; @@ -623,7 +627,7 @@ void Filter::recurse() { assert(FilterChooserMap.size() == 1); return; } - + // Otherwise, create sub choosers. for (mapIterator = FilteredInstructions.begin(); mapIterator != FilteredInstructions.end(); |