summaryrefslogtreecommitdiffstats
path: root/compiler/optimizing
diff options
context:
space:
mode:
authorNicolas Geoffray <ngeoffray@google.com>2014-05-06 08:20:55 +0000
committerGerrit Code Review <noreply-gerritcodereview@google.com>2014-05-06 08:20:56 +0000
commit6ab0d9fe1abec72f5fe4841a8124fadf55400977 (patch)
tree9ac3fca744fe35496f4f0fa4a01c45104ce118cc /compiler/optimizing
parent2a12ad460af139a03c3e9bf5fc7886a7521b333e (diff)
parentf529d776ca9f48b115714f6c79677755ecc37d24 (diff)
downloadart-6ab0d9fe1abec72f5fe4841a8124fadf55400977.tar.gz
art-6ab0d9fe1abec72f5fe4841a8124fadf55400977.tar.bz2
art-6ab0d9fe1abec72f5fe4841a8124fadf55400977.zip
Merge "Make all registers available when allocating an output register."
Diffstat (limited to 'compiler/optimizing')
-rw-r--r--compiler/optimizing/code_generator.cc6
1 files changed, 6 insertions, 0 deletions
diff --git a/compiler/optimizing/code_generator.cc b/compiler/optimizing/code_generator.cc
index ff316e5b04..8b85d71dae 100644
--- a/compiler/optimizing/code_generator.cc
+++ b/compiler/optimizing/code_generator.cc
@@ -132,6 +132,12 @@ void CodeGenerator::AllocateRegistersLocally(HInstruction* instruction) const {
}
}
+ // Make all registers available for the return value.
+ for (size_t i = 0, e = GetNumberOfRegisters(); i < e; ++i) {
+ blocked_registers_[i] = false;
+ }
+ SetupBlockedRegisters(blocked_registers_);
+
Location result_location = locations->Out();
if (result_location.IsUnallocated()) {
switch (result_location.GetPolicy()) {