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 /utils/TableGen/ARMDecoderEmitter.cpp | |
parent | b39b7e5ebf477039a5c6064464ee10da21b5f726 (diff) |
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
Diffstat (limited to 'utils/TableGen/ARMDecoderEmitter.cpp')
-rw-r--r-- | utils/TableGen/ARMDecoderEmitter.cpp | 8 |
1 files changed, 6 insertions, 2 deletions
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(); |