summaryrefslogtreecommitdiff
path: root/src/compiler/codegen/arm/ArchUtility.cc
diff options
context:
space:
mode:
author buzbee <buzbee@google.com> 2012-07-10 15:18:31 -0700
committer buzbee <buzbee@google.com> 2012-07-10 19:19:27 -0700
commitf1f863695b28f630abb772f50170fefaddc2fb91 (patch)
tree9a5bdda08897530e998484a2a400ac34ff7962f4 /src/compiler/codegen/arm/ArchUtility.cc
parentdcfdd2b03af29dcaf234d062a79acb919f130435 (diff)
Quick compiler - fix run-test 019
Two problems: 1. Was treating an array object store as a regular array store 2. Codegen bug that (somewhat disturbingly) existed in the non-quick code. I'm a little surprised that it hadn't shown up before now, but it would tend to be masked if the array base register in question was promoted. Change-Id: I62bcb866174538ceedcc1309edcf22261237840a
Diffstat (limited to 'src/compiler/codegen/arm/ArchUtility.cc')
-rw-r--r--src/compiler/codegen/arm/ArchUtility.cc2
1 files changed, 2 insertions, 0 deletions
diff --git a/src/compiler/codegen/arm/ArchUtility.cc b/src/compiler/codegen/arm/ArchUtility.cc
index 725200a6f6..cdb8486f50 100644
--- a/src/compiler/codegen/arm/ArchUtility.cc
+++ b/src/compiler/codegen/arm/ArchUtility.cc
@@ -218,6 +218,8 @@ std::string buildInsnString(const char* fmt, LIR* lir, unsigned char* baseAddr)
sprintf(tbuf,"%d", operand);
break;
case 'C':
+ DCHECK_LT(operand, static_cast<int>(
+ sizeof(coreRegNames)/sizeof(coreRegNames[0])));
sprintf(tbuf,"%s",coreRegNames[operand]);
break;
case 'E':