Factor out arch-independent ScaleFactor definition.
Bug: 65872996
Test: m test-art-host-gtest
Test: art/test.py --host -r --optimizing
Change-Id: I27763286847b45a5a3a493c3dba48418575b3eb6
diff --git a/compiler/optimizing/code_generator.cc b/compiler/optimizing/code_generator.cc
index 886cabb..a096338 100644
--- a/compiler/optimizing/code_generator.cc
+++ b/compiler/optimizing/code_generator.cc
@@ -1830,4 +1830,28 @@
UNREACHABLE();
}
+ScaleFactor CodeGenerator::ScaleFactorForType(DataType::Type type) {
+ switch (type) {
+ case DataType::Type::kBool:
+ case DataType::Type::kUint8:
+ case DataType::Type::kInt8:
+ return TIMES_1;
+ case DataType::Type::kUint16:
+ case DataType::Type::kInt16:
+ return TIMES_2;
+ case DataType::Type::kInt32:
+ case DataType::Type::kUint32:
+ case DataType::Type::kFloat32:
+ case DataType::Type::kReference:
+ return TIMES_4;
+ case DataType::Type::kInt64:
+ case DataType::Type::kUint64:
+ case DataType::Type::kFloat64:
+ return TIMES_8;
+ case DataType::Type::kVoid:
+ LOG(FATAL) << "Unreachable type " << type;
+ UNREACHABLE();
+ }
+}
+
} // namespace art