[codegen][debug] generation debug info for vals.

This commit is contained in:
Vasily Levchenko
2017-10-25 18:26:09 +03:00
committed by Vasily Levchenko
parent b6713df52a
commit fea734ec83
8 changed files with 163 additions and 62 deletions
+5 -5
View File
@@ -1080,13 +1080,13 @@ void UpdateRef(ObjHeader** location, const ObjHeader* object) {
}
}
void EnterFrame(ObjHeader** start, int count) {
MEMORY_LOG("EnterFrame %p .. %p\n", start, start + count)
void EnterFrame(ObjHeader** start, int parameters, int count) {
MEMORY_LOG("EnterFrame %p .. %p\n", start, start + count + parameters)
}
void LeaveFrame(ObjHeader** start, int count) {
MEMORY_LOG("LeaveFrame %p .. %p\n", start, start + count)
ReleaseRefs(start + kFrameOverlaySlots, count - kFrameOverlaySlots);
void LeaveFrame(ObjHeader** start, int parameters, int count) {
MEMORY_LOG("LeaveFrame %p .. %p\n", start, start + count + parameters)
ReleaseRefs(start + parameters + kFrameOverlaySlots, count - kFrameOverlaySlots - parameters);
if (*start != nullptr) {
auto arena = initedArena(start);
MEMORY_LOG("LeaveFrame: free arena %p\n", arena)
+2 -2
View File
@@ -362,9 +362,9 @@ void UpdateReturnRef(ObjHeader** returnSlot, const ObjHeader* object) RUNTIME_NO
// Optimization: release all references in range.
void ReleaseRefs(ObjHeader** start, int count) RUNTIME_NOTHROW;
// Called on frame enter, if it has object slots.
void EnterFrame(ObjHeader** start, int count) RUNTIME_NOTHROW;
void EnterFrame(ObjHeader** start, int parameters, int count) RUNTIME_NOTHROW;
// Called on frame leave, if it has object slots.
void LeaveFrame(ObjHeader** start, int count) RUNTIME_NOTHROW;
void LeaveFrame(ObjHeader** start, int parameters, int count) RUNTIME_NOTHROW;
// Tries to use returnSlot's arena for allocation.
ObjHeader** GetReturnSlotIfArena(ObjHeader** returnSlot, ObjHeader** localSlot) RUNTIME_NOTHROW;
// Tries to use param's arena for allocation.