Revision: 6827
Author: [email protected]
Date: Wed Feb 16 09:40:28 2011
Log: GBDJIT: Do not check unwinding information correctness on x64.
This does not affect correctness of most common use cases.
Review URL: http://codereview.chromium.org/6525053
http://code.google.com/p/v8/source/detail?r=6827
Modified:
/branches/bleeding_edge/src/gdb-jit.cc
=======================================
--- /branches/bleeding_edge/src/gdb-jit.cc Tue Feb 15 13:11:31 2011
+++ /branches/bleeding_edge/src/gdb-jit.cc Wed Feb 16 09:40:28 2011
@@ -1411,9 +1411,8 @@
#ifdef V8_TARGET_ARCH_X64
if (desc->tag() == GDBJITInterface::FUNCTION) {
// To avoid propagating unwinding information through
- // compilation pipeline we rely on function prologue
- // and epilogue being the same for all code objects generated
- // by the full code generator.
+ // compilation pipeline we use an approximation.
+ // For most use cases this should not affect usability.
static const int kFramePointerPushOffset = 1;
static const int kFramePointerSetOffset = 4;
static const int kFramePointerPopOffset = -3;
@@ -1427,19 +1426,6 @@
uintptr_t frame_pointer_pop_address =
desc->CodeEnd() + kFramePointerPopOffset;
-#ifdef DEBUG
- static const uint8_t kFramePointerPushInstruction = 0x48; // push ebp
- static const uint16_t kFramePointerSetInstruction = 0x5756; // mov
ebp, esp
- static const uint8_t kFramePointerPopInstruction = 0xBE; // pop ebp
-
- ASSERT(*reinterpret_cast<uint8_t*>(frame_pointer_push_address) ==
- kFramePointerPushInstruction);
- ASSERT(*reinterpret_cast<uint16_t*>(frame_pointer_set_address) ==
- kFramePointerSetInstruction);
- ASSERT(*reinterpret_cast<uint8_t*>(frame_pointer_pop_address) ==
- kFramePointerPopInstruction);
-#endif
-
desc->SetStackStateStartAddress(CodeDescription::POST_RBP_PUSH,
frame_pointer_push_address);
desc->SetStackStateStartAddress(CodeDescription::POST_RBP_SET,
--
v8-dev mailing list
[email protected]
http://groups.google.com/group/v8-dev