summaryrefslogtreecommitdiff
path: root/compiler/optimizing/code_generator.cc
diff options
context:
space:
mode:
author David Srbecky <dsrbecky@google.com> 2015-09-03 10:23:28 +0000
committer Gerrit Code Review <noreply-gerritcodereview@google.com> 2015-09-03 10:23:28 +0000
commit86d92066df8323d5ee7ac7e9c061a79343a82fd8 (patch)
tree7b83b227bbaa36465f313542bba9206ac631a8fd /compiler/optimizing/code_generator.cc
parent6d889e0e5004ae4d548e6c623a1218f010d1e89b (diff)
parent2a7c1ef95c850abae915b3a59fbafa87e6833967 (diff)
Merge "Add more dwarf debug line info for Optimized methods."
Diffstat (limited to 'compiler/optimizing/code_generator.cc')
-rw-r--r--compiler/optimizing/code_generator.cc21
1 files changed, 12 insertions, 9 deletions
diff --git a/compiler/optimizing/code_generator.cc b/compiler/optimizing/code_generator.cc
index 3f69270f17..a6fc4557f7 100644
--- a/compiler/optimizing/code_generator.cc
+++ b/compiler/optimizing/code_generator.cc
@@ -239,7 +239,10 @@ void CodeGenerator::CompileInternal(CodeAllocator* allocator, bool is_baseline)
InitLocationsBaseline(current);
}
DCHECK(CheckTypeConsistency(current));
+ uintptr_t native_pc_begin = GetAssembler()->CodeSize();
current->Accept(instruction_visitor);
+ uintptr_t native_pc_end = GetAssembler()->CodeSize();
+ RecordNativeDebugInfo(current->GetDexPc(), native_pc_begin, native_pc_end);
}
}
@@ -604,15 +607,6 @@ void CodeGenerator::BuildNativeGCMap(
}
}
-void CodeGenerator::BuildSourceMap(DefaultSrcMap* src_map) const {
- for (size_t i = 0, num = stack_map_stream_.GetNumberOfStackMaps(); i != num; ++i) {
- const StackMapStream::StackMapEntry& stack_map_entry = stack_map_stream_.GetStackMap(i);
- uint32_t pc2dex_offset = stack_map_entry.native_pc_offset;
- int32_t pc2dex_dalvik_offset = stack_map_entry.dex_pc;
- src_map->push_back(SrcMapElem({pc2dex_offset, pc2dex_dalvik_offset}));
- }
-}
-
void CodeGenerator::BuildMappingTable(ArenaVector<uint8_t>* data) const {
uint32_t pc2dex_data_size = 0u;
uint32_t pc2dex_entries = stack_map_stream_.GetNumberOfStackMaps();
@@ -728,6 +722,15 @@ void CodeGenerator::BuildStackMaps(ArenaVector<uint8_t>* data) {
stack_map_stream_.FillIn(region);
}
+void CodeGenerator::RecordNativeDebugInfo(uint32_t dex_pc,
+ uintptr_t native_pc_begin,
+ uintptr_t native_pc_end) {
+ if (src_map_ != nullptr && dex_pc != kNoDexPc && native_pc_begin != native_pc_end) {
+ src_map_->push_back(SrcMapElem({static_cast<uint32_t>(native_pc_begin),
+ static_cast<int32_t>(dex_pc)}));
+ }
+}
+
void CodeGenerator::RecordPcInfo(HInstruction* instruction,
uint32_t dex_pc,
SlowPathCode* slow_path) {