aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorShih-wei Liao <sliao@google.com>2011-06-17 13:09:03 -0700
committerShih-wei Liao <sliao@google.com>2011-06-17 13:09:03 -0700
commit7982b43e731a17981eb2399bce20169933d52c3a (patch)
tree3807a343c8e960bcc4b8efa3049c69c51217608f
parentaa9bc19930f66ade30857fa50617f1e70952f8db (diff)
downloadexternal_llvm-7982b43e731a17981eb2399bce20169933d52c3a.zip
external_llvm-7982b43e731a17981eb2399bce20169933d52c3a.tar.gz
external_llvm-7982b43e731a17981eb2399bce20169933d52c3a.tar.bz2
Optimizing away Binary &= ~(0x80000000 >> 12) and Binary |= (Imm & 0x80000000) >> 12
The key is that the classical JIT does: unsigned Binary = getBinaryCodeForInstr(MI); As a result, it will get information from ARMInstrVFP.td. Because regardless of my previous CLs I20394c2c and I9a8e7177, the old td and the new td will result in the same immed{31}. See Line 1080 of ARMInstrVFP.td: let Inst{19} = imm{31}; In short, we only need to fix the difference between old td and the new td. Change-Id: I02695ece0f15e77f7bd712961db1a24bd3c487d7
-rw-r--r--lib/Target/ARM/ARMCodeEmitter.cpp2
1 files changed, 0 insertions, 2 deletions
diff --git a/lib/Target/ARM/ARMCodeEmitter.cpp b/lib/Target/ARM/ARMCodeEmitter.cpp
index ddcf234..d010d1d 100644
--- a/lib/Target/ARM/ARMCodeEmitter.cpp
+++ b/lib/Target/ARM/ARMCodeEmitter.cpp
@@ -1857,8 +1857,6 @@ void ARMCodeEmitter::emitMiscInstruction(const MachineInstr &MI) {
Binary |= (Imm & 0x780000) >> 19;
Binary &= ~(0x3800000 >> 7);
Binary |= (Imm & 0x3800000) >> 7;
- Binary &= ~(0x80000000 >> 12);
- Binary |= (Imm & 0x80000000) >> 12;
Binary = VFPThumb2PostEncoder(MI, Binary);
}