summaryrefslogtreecommitdiffstats
path: root/compiler/dex/quick/gen_invoke.cc
diff options
context:
space:
mode:
authorVladimir Marko <vmarko@google.com>2014-12-19 19:27:26 +0000
committerVladimir Marko <vmarko@google.com>2014-12-19 21:29:04 +0000
commitbfe400bb1a28cde991cdb3e39bc27bae6b04b8c2 (patch)
treebad7d998663fb37ef400cbf1fc5fe4cb89b32d9a /compiler/dex/quick/gen_invoke.cc
parentfa28ef0191e5f65bdf5932675f49d897bdc480b2 (diff)
downloadandroid_art-bfe400bb1a28cde991cdb3e39bc27bae6b04b8c2.tar.gz
android_art-bfe400bb1a28cde991cdb3e39bc27bae6b04b8c2.tar.bz2
android_art-bfe400bb1a28cde991cdb3e39bc27bae6b04b8c2.zip
Fix running out of temps when storing invoke-interface result.
On ARM, after emitting invoke-interface we didn't have any free temps to use for storing the result, so we would crash if the result was an unpromoted dalvik register with stack location too far from SP. Bug: 18769895 (cherry picked from commit d6bd06c713e8ec69de96510ef57bdf7adb4781ed) Change-Id: Id88f6f3788eaf6ecbc7bd68880b445423f6e4f94
Diffstat (limited to 'compiler/dex/quick/gen_invoke.cc')
-rwxr-xr-xcompiler/dex/quick/gen_invoke.cc2
1 files changed, 1 insertions, 1 deletions
diff --git a/compiler/dex/quick/gen_invoke.cc b/compiler/dex/quick/gen_invoke.cc
index 9462d3d08f..eb206a68c6 100755
--- a/compiler/dex/quick/gen_invoke.cc
+++ b/compiler/dex/quick/gen_invoke.cc
@@ -1557,7 +1557,7 @@ void Mir2Lir::GenInvokeNoInline(CallInfo* info) {
LIR* call_insn = GenCallInsn(method_info);
MarkSafepointPC(call_insn);
- ClobberCallerSave();
+ FreeCallTemps();
if (info->result.location != kLocInvalid) {
// We have a following MOVE_RESULT - do it now.
if (info->result.wide) {