Index: src/frames.cc |
diff --git a/src/frames.cc b/src/frames.cc |
index e0ac2ee2ae9a931f50e2ef8cc1e9470da3d5dfa9..17d02ccd4e56f284af6c867d8fcfabf5f9d0dc19 100644 |
--- a/src/frames.cc |
+++ b/src/frames.cc |
@@ -469,6 +469,20 @@ StackFrame::Type StackFrame::GetCallerState(State* state) const { |
} |
+Address StackFrame::UnpaddedFP() const { |
+#if defined(V8_TARGET_ARCH_IA32) || defined(V8_HOST_ARCH_IA32) |
+ if (!is_optimized()) return fp(); |
+ int32_t alignment_state = Memory::int32_at( |
+ fp() + JavaScriptFrameConstants::kDynamicAlignmentStateOffset); |
+ |
+ return (alignment_state == kAlignmentPaddingPushed) ? |
+ (fp() + kPointerSize) : fp(); |
+#else |
+ return fp(); |
+#endif |
+} |
+ |
+ |
Code* EntryFrame::unchecked_code() const { |
return HEAP->raw_unchecked_js_entry_code(); |
} |