summaryrefslogtreecommitdiffstats
path: root/oatdump
diff options
context:
space:
mode:
authorNicolas Geoffray <ngeoffray@google.com>2015-03-12 15:05:13 +0000
committerNicolas Geoffray <ngeoffray@google.com>2015-03-13 10:26:47 +0000
commit15b9d5274399736ac09705f0507df24fac4f00c1 (patch)
tree04564a9265f5dccefdd32ea7bdd25adc0267f80b /oatdump
parent8bc616d09f93523f4bc982cc60c377b00161522a (diff)
downloadart-15b9d5274399736ac09705f0507df24fac4f00c1.zip
art-15b9d5274399736ac09705f0507df24fac4f00c1.tar.gz
art-15b9d5274399736ac09705f0507df24fac4f00c1.tar.bz2
API change in StackVisitor::GetVReg*.
- Remove GetVReg() and SetVReg() that were expecting to always succeed. - Change Quick-only methods to take a FromQuickCode suffix. - Change deopt to use dead values when GetVReg does not succeed: the optimizing compiler will not have a location for uninitialized Dex registers and potentially dead registers. Change-Id: Ida05773a97aff8aa69e0caf42ea961f80f854b77
Diffstat (limited to 'oatdump')
-rw-r--r--oatdump/oatdump.cc22
1 files changed, 14 insertions, 8 deletions
diff --git a/oatdump/oatdump.cc b/oatdump/oatdump.cc
index 9ae3b79..9512376 100644
--- a/oatdump/oatdump.cc
+++ b/oatdump/oatdump.cc
@@ -1138,10 +1138,13 @@ class OatDumper {
os << "\n\tlocals:";
}
- uint32_t offset = StackVisitor::GetVRegOffset(code_item, oat_method.GetCoreSpillMask(),
- oat_method.GetFpSpillMask(),
- oat_method.GetFrameSizeInBytes(), reg,
- GetInstructionSet());
+ uint32_t offset = StackVisitor::GetVRegOffsetFromQuickCode(
+ code_item,
+ oat_method.GetCoreSpillMask(),
+ oat_method.GetFpSpillMask(),
+ oat_method.GetFrameSizeInBytes(),
+ reg,
+ GetInstructionSet());
os << " v" << reg << "[sp + #" << offset << "]";
}
@@ -1170,10 +1173,13 @@ class OatDumper {
: oat_method.GetCoreSpillMask();
os << (is_float ? "fr" : "r") << vmap_table.ComputeRegister(spill_mask, vmap_offset, kind);
} else {
- uint32_t offset = StackVisitor::GetVRegOffset(code_item, oat_method.GetCoreSpillMask(),
- oat_method.GetFpSpillMask(),
- oat_method.GetFrameSizeInBytes(), reg,
- GetInstructionSet());
+ uint32_t offset = StackVisitor::GetVRegOffsetFromQuickCode(
+ code_item,
+ oat_method.GetCoreSpillMask(),
+ oat_method.GetFpSpillMask(),
+ oat_method.GetFrameSizeInBytes(),
+ reg,
+ GetInstructionSet());
os << "[sp + #" << offset << "]";
}
}