summaryrefslogtreecommitdiff
path: root/src/compiler/codegen/RallocUtil.cc
diff options
context:
space:
mode:
author buzbee <buzbee@google.com> 2011-08-24 15:32:46 -0700
committer buzbee <buzbee@google.com> 2011-08-24 15:47:44 -0700
commit9e0f9b0d3e2cd78092e5c4b66ce1edcd79c951ea (patch)
treeecdf662160bd3113de7b09c02a7c8156e3f768d1 /src/compiler/codegen/RallocUtil.cc
parent69f5bc6759f256a146eefd8a7141d39fcc3b0421 (diff)
Add switch and comparison tests. Fix ralloc bug
We normally have 5 registers in our temp pool, but up to 6 may be needed for long 3-operand operations. Added a workaround to temporarily add lr to the temp pool in that specific case. Moved the bulk of the compiler_test code out of common_test.h into compiler_test.h. Added switch and compare unit tests. Change-Id: Ib449c49861acb5aaef716e8538e5818ba74522cb
Diffstat (limited to 'src/compiler/codegen/RallocUtil.cc')
-rw-r--r--src/compiler/codegen/RallocUtil.cc6
1 files changed, 6 insertions, 0 deletions
diff --git a/src/compiler/codegen/RallocUtil.cc b/src/compiler/codegen/RallocUtil.cc
index 30b52804e5..3b222f6f76 100644
--- a/src/compiler/codegen/RallocUtil.cc
+++ b/src/compiler/codegen/RallocUtil.cc
@@ -783,6 +783,12 @@ extern void oatMarkTemp(CompilationUnit* cUnit, int reg)
info->isTemp = true;
}
+extern void oatUnmarkTemp(CompilationUnit* cUnit, int reg)
+{
+ RegisterInfo* info = getRegInfo(cUnit, reg);
+ info->isTemp = false;
+}
+
extern void oatMarkPair(CompilationUnit* cUnit, int lowReg, int highReg)
{
RegisterInfo* infoLo = getRegInfo(cUnit, lowReg);