summaryrefslogtreecommitdiffstats
path: root/llvm/utils/TableGen/ARMDecoderEmitter.cpp
diff options
context:
space:
mode:
authorJohnny Chen <johnny.chen@apple.com>2010-04-07 20:53:12 +0000
committerJohnny Chen <johnny.chen@apple.com>2010-04-07 20:53:12 +0000
commit4e2f8722c4a63d5b931c13804fcd01a5b7eb9c90 (patch)
treee25e4c53861c8642fc477c6ad414903f3b7c2fbb /llvm/utils/TableGen/ARMDecoderEmitter.cpp
parentb35583df52410fa30944becc57be1507c36c5ff2 (diff)
downloadbcm5719-llvm-4e2f8722c4a63d5b931c13804fcd01a5b7eb9c90.tar.gz
bcm5719-llvm-4e2f8722c4a63d5b931c13804fcd01a5b7eb9c90.zip
Re-enable ARM/Thumb disassembler and add a workaround for a memcpy() call in
ARMDecoderEmitter.cpp, with FIXME comment. llvm-svn: 100690
Diffstat (limited to 'llvm/utils/TableGen/ARMDecoderEmitter.cpp')
-rw-r--r--llvm/utils/TableGen/ARMDecoderEmitter.cpp8
1 files changed, 6 insertions, 2 deletions
diff --git a/llvm/utils/TableGen/ARMDecoderEmitter.cpp b/llvm/utils/TableGen/ARMDecoderEmitter.cpp
index 5fb8b6bfb23..230152195ed 100644
--- a/llvm/utils/TableGen/ARMDecoderEmitter.cpp
+++ b/llvm/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();
OpenPOWER on IntegriCloud