summaryrefslogtreecommitdiffstats
path: root/llvm/lib/Target/ARM/ARMCodeEmitter.cpp
diff options
context:
space:
mode:
authorJim Grosbach <grosbach@apple.com>2010-10-27 23:12:14 +0000
committerJim Grosbach <grosbach@apple.com>2010-10-27 23:12:14 +0000
commit338de3ee561aeefec99255b8be55907d04a5c47b (patch)
tree87a7bfa996a073bf444a56c7b67c7e385a2cc2d7 /llvm/lib/Target/ARM/ARMCodeEmitter.cpp
parent03b99365e3f32f9aee00d1f69f72a7e0c2e3a94c (diff)
downloadbcm5719-llvm-338de3ee561aeefec99255b8be55907d04a5c47b.tar.gz
bcm5719-llvm-338de3ee561aeefec99255b8be55907d04a5c47b.zip
Refactor ARM STR/STRB instruction patterns into STR{B}i12 and STR{B}rs, like
the LDR instructions have. This makes the literal/register forms of the instructions explicit and allows us to assign scheduling itineraries appropriately. rdar://8477752 llvm-svn: 117505
Diffstat (limited to 'llvm/lib/Target/ARM/ARMCodeEmitter.cpp')
-rw-r--r--llvm/lib/Target/ARM/ARMCodeEmitter.cpp5
1 files changed, 3 insertions, 2 deletions
diff --git a/llvm/lib/Target/ARM/ARMCodeEmitter.cpp b/llvm/lib/Target/ARM/ARMCodeEmitter.cpp
index 1fb99fe5b0d..fa11a483221 100644
--- a/llvm/lib/Target/ARM/ARMCodeEmitter.cpp
+++ b/llvm/lib/Target/ARM/ARMCodeEmitter.cpp
@@ -966,8 +966,9 @@ void ARMCodeEmitter::emitLoadStoreInstruction(const MachineInstr &MI,
// Part of binary is determined by TableGn.
unsigned Binary = getBinaryCodeForInstr(MI);
- // If this is an LDRi12 or LDRcp, nothing more needs be done.
- if (MI.getOpcode() == ARM::LDRi12 || MI.getOpcode() == ARM::LDRcp) {
+ // If this is an LDRi12, STRi12 or LDRcp, nothing more needs be done.
+ if (MI.getOpcode() == ARM::LDRi12 || MI.getOpcode() == ARM::LDRcp ||
+ MI.getOpcode() == ARM::STRi12) {
emitWordLE(Binary);
return;
}
OpenPOWER on IntegriCloud