summaryrefslogtreecommitdiff
path: root/runtime/art_method.cc
diff options
context:
space:
mode:
Diffstat (limited to 'runtime/art_method.cc')
-rw-r--r--runtime/art_method.cc23
1 files changed, 23 insertions, 0 deletions
diff --git a/runtime/art_method.cc b/runtime/art_method.cc
index 18fcfb2eabe..0890da8c832 100644
--- a/runtime/art_method.cc
+++ b/runtime/art_method.cc
@@ -839,6 +839,29 @@ std::string ArtMethod::JniLongName() {
return long_name;
}
+const char* ArtMethod::GetRuntimeMethodName() {
+ Runtime* const runtime = Runtime::Current();
+ if (this == runtime->GetResolutionMethod()) {
+ return "<runtime internal resolution method>";
+ } else if (this == runtime->GetImtConflictMethod()) {
+ return "<runtime internal imt conflict method>";
+ } else if (this == runtime->GetCalleeSaveMethod(CalleeSaveType::kSaveAllCalleeSaves)) {
+ return "<runtime internal callee-save all registers method>";
+ } else if (this == runtime->GetCalleeSaveMethod(CalleeSaveType::kSaveRefsOnly)) {
+ return "<runtime internal callee-save reference registers method>";
+ } else if (this == runtime->GetCalleeSaveMethod(CalleeSaveType::kSaveRefsAndArgs)) {
+ return "<runtime internal callee-save reference and argument registers method>";
+ } else if (this == runtime->GetCalleeSaveMethod(CalleeSaveType::kSaveEverything)) {
+ return "<runtime internal save-every-register method>";
+ } else if (this == runtime->GetCalleeSaveMethod(CalleeSaveType::kSaveEverythingForClinit)) {
+ return "<runtime internal save-every-register method for clinit>";
+ } else if (this == runtime->GetCalleeSaveMethod(CalleeSaveType::kSaveEverythingForSuspendCheck)) {
+ return "<runtime internal save-every-register method for suspend check>";
+ } else {
+ return "<unknown runtime internal method>";
+ }
+}
+
// AssertSharedHeld doesn't work in GetAccessFlags, so use a NO_THREAD_SAFETY_ANALYSIS helper.
// TODO: Figure out why ASSERT_SHARED_CAPABILITY doesn't work.
template <ReadBarrierOption kReadBarrierOption>