summaryrefslogtreecommitdiffstats
path: root/oatdump
diff options
context:
space:
mode:
authorIan Rogers <irogers@google.com>2014-10-14 17:41:57 -0700
committerIan Rogers <irogers@google.com>2014-10-16 19:27:28 -0700
commit6f3dbbadf4ce66982eb3d400e0a74cb73eb034f3 (patch)
treef7a20779e4d665f948c5fbcd26dac0071dafb8d4 /oatdump
parent2df6840f68dd18d7dd8dbf53f8b6181bbfdc4fc4 (diff)
downloadart-6f3dbbadf4ce66982eb3d400e0a74cb73eb034f3.zip
art-6f3dbbadf4ce66982eb3d400e0a74cb73eb034f3.tar.gz
art-6f3dbbadf4ce66982eb3d400e0a74cb73eb034f3.tar.bz2
Make ART compile with GCC -O0 again.
Tidy up InstructionSetFeatures so that it has a type hierarchy dependent on architecture. Add to instruction_set_test to warn when InstructionSetFeatures don't agree with ones from system properties, AT_HWCAP and /proc/cpuinfo. Clean-up class linker entry point logic to not return entry points but to test whether the passed code is the particular entrypoint. This works around image trampolines that replicate entrypoints. Bug: 17993736 Change-Id: I5f4b49e88c3b02a79f9bee04f83395146ed7be23
Diffstat (limited to 'oatdump')
-rw-r--r--oatdump/oatdump.cc11
1 files changed, 8 insertions, 3 deletions
diff --git a/oatdump/oatdump.cc b/oatdump/oatdump.cc
index 1f2c0aa..2e64198 100644
--- a/oatdump/oatdump.cc
+++ b/oatdump/oatdump.cc
@@ -396,8 +396,13 @@ class OatDumper {
os << "INSTRUCTION SET:\n";
os << oat_header.GetInstructionSet() << "\n\n";
- os << "INSTRUCTION SET FEATURES:\n";
- os << oat_header.GetInstructionSetFeatures().GetFeatureString() << "\n\n";
+ {
+ std::unique_ptr<const InstructionSetFeatures> features(
+ InstructionSetFeatures::FromBitmap(oat_header.GetInstructionSet(),
+ oat_header.GetInstructionSetFeaturesBitmap()));
+ os << "INSTRUCTION SET FEATURES:\n";
+ os << features->GetFeatureString() << "\n\n";
+ }
os << "DEX FILE COUNT:\n";
os << oat_header.GetDexFileCount() << "\n\n";
@@ -1493,7 +1498,7 @@ class ImageDumper {
const void* GetQuickOatCodeBegin(mirror::ArtMethod* m)
SHARED_LOCKS_REQUIRED(Locks::mutator_lock_) {
const void* quick_code = m->GetEntryPointFromQuickCompiledCode();
- if (quick_code == Runtime::Current()->GetClassLinker()->GetQuickResolutionTrampoline()) {
+ if (Runtime::Current()->GetClassLinker()->IsQuickResolutionStub(quick_code)) {
quick_code = oat_dumper_->GetQuickOatCode(m);
}
if (oat_dumper_->GetInstructionSet() == kThumb2) {