diff options
| author | 2011-08-24 15:32:46 -0700 | |
|---|---|---|
| committer | 2011-08-24 15:47:44 -0700 | |
| commit | 9e0f9b0d3e2cd78092e5c4b66ce1edcd79c951ea (patch) | |
| tree | ecdf662160bd3113de7b09c02a7c8156e3f768d1 /src/compiler/codegen/RallocUtil.cc | |
| parent | 69f5bc6759f256a146eefd8a7141d39fcc3b0421 (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.cc | 6 |
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); |