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
diff --git a/src/compiler/codegen/RallocUtil.cc b/src/compiler/codegen/RallocUtil.cc
index 30b5280..3b222f6 100644
--- a/src/compiler/codegen/RallocUtil.cc
+++ b/src/compiler/codegen/RallocUtil.cc
@@ -783,6 +783,12 @@
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);