diff options
| author | 2012-07-10 15:18:31 -0700 | |
|---|---|---|
| committer | 2012-07-10 19:19:27 -0700 | |
| commit | f1f863695b28f630abb772f50170fefaddc2fb91 (patch) | |
| tree | 9a5bdda08897530e998484a2a400ac34ff7962f4 /src/compiler/codegen/GenCommon.cc | |
| parent | dcfdd2b03af29dcaf234d062a79acb919f130435 (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/GenCommon.cc')
| -rw-r--r-- | src/compiler/codegen/GenCommon.cc | 2 |
1 files changed, 1 insertions, 1 deletions
diff --git a/src/compiler/codegen/GenCommon.cc b/src/compiler/codegen/GenCommon.cc index 40c0f22fa9..9082a49ad3 100644 --- a/src/compiler/codegen/GenCommon.cc +++ b/src/compiler/codegen/GenCommon.cc @@ -1439,7 +1439,7 @@ void genArrayObjPut(CompilationUnit* cUnit, int optFlags, RegLocation rlArray, int regLen = INVALID_REG; if (needsRangeCheck) { regLen = rARG1; - loadWordDisp(cUnit, rlArray.lowReg, lenOffset, regLen); // Get len + loadWordDisp(cUnit, rArray, lenOffset, regLen); // Get len } /* rPtr -> array data */ int rPtr = oatAllocTemp(cUnit); |