Move 64-bit multiplication to helper
We're right on the edge for supporting inline 64-bit arithmetic
with our current temp register pool allocation. Moving 64-bit multiplication
out of line to sidestep the problem, and added some temp frees to
3-operand long ops. In the latter case there was a potential problem
if the result long was located in a part of the frame not in the range
of a single base+displacement store.
Change-Id: I6f8e0a11b440ed35e08f2e3457de6cbea89cfccc
diff --git a/src/compiler/Frontend.cc b/src/compiler/Frontend.cc
index 272cb08..0fb6636 100644
--- a/src/compiler/Frontend.cc
+++ b/src/compiler/Frontend.cc
@@ -697,15 +697,19 @@
*/
bool oatCompileMethod(Method* method, art::InstructionSet insnSet)
{
- if (!method->IsStatic() ||
- (method->GetName()->ToModifiedUtf8().find("foo") != std::string::npos) ||
- (method->GetName()->ToModifiedUtf8().find("init>") != std::string::npos) ||
- (method->GetName()->ToModifiedUtf8().find("longOperTest") != std::string::npos) ||
+ bool compiling = true;
+ if (!method->IsStatic()) {
+ compiling = false;
+ } else if ( (method->GetName()->ToModifiedUtf8().find("foo") != std::string::npos) ||
(method->GetName()->ToModifiedUtf8().find("main") != std::string::npos)) {
+ compiling = false;
+ }
+
+ if (compiling) {
+ LOG(INFO) << "Compiling " << PrettyMethod(method, true);
+ } else {
LOG(INFO) << "not compiling " << PrettyMethod(method, true);
return false;
- } else {
- LOG(INFO) << "Compiling " << PrettyMethod(method, true);
}
CompilationUnit cUnit;