summaryrefslogtreecommitdiff
path: root/deps/v8/src/platform-win32.cc
diff options
context:
space:
mode:
authorRyan <ry@tinyclouds.org>2009-08-25 13:47:18 +0200
committerRyan <ry@tinyclouds.org>2009-08-25 13:47:18 +0200
commitb5b65ddcd776e59d35200105ed3420c04d07cae9 (patch)
tree1c0863fe9f268d1910e2ced36be96514d945139d /deps/v8/src/platform-win32.cc
parentb0a362a72734deb286830e26a3eb20e20234f3e9 (diff)
downloadnode-new-b5b65ddcd776e59d35200105ed3420c04d07cae9.tar.gz
Upgrade v8 to 1.3.7
Diffstat (limited to 'deps/v8/src/platform-win32.cc')
-rw-r--r--deps/v8/src/platform-win32.cc18
1 files changed, 12 insertions, 6 deletions
diff --git a/deps/v8/src/platform-win32.cc b/deps/v8/src/platform-win32.cc
index 0a2d99041b..de6cd125ba 100644
--- a/deps/v8/src/platform-win32.cc
+++ b/deps/v8/src/platform-win32.cc
@@ -54,10 +54,6 @@
#define _WIN32_WINNT 0x500
#endif
-#ifdef _WIN64
-#error Windows 64-bit blatforms not supported
-#endif
-
#include <windows.h>
#include <time.h> // For LocalOffset() implementation.
@@ -1190,6 +1186,9 @@ int OS::StackWalk(Vector<OS::StackFrame> frames) {
memset(&context, 0, sizeof(context));
context.ContextFlags = CONTEXT_CONTROL;
context.ContextFlags = CONTEXT_CONTROL;
+#ifdef _WIN64
+ // TODO(X64): Implement context capture.
+#else
__asm call x
__asm x: pop eax
__asm mov context.Eip, eax
@@ -1199,15 +1198,22 @@ int OS::StackWalk(Vector<OS::StackFrame> frames) {
// capture the context instead of inline assembler. However it is
// only available on XP, Vista, Server 2003 and Server 2008 which
// might not be sufficient.
+#endif
// Initialize the stack walking
STACKFRAME64 stack_frame;
memset(&stack_frame, 0, sizeof(stack_frame));
+#ifdef _WIN64
+ stack_frame.AddrPC.Offset = context.Rip;
+ stack_frame.AddrFrame.Offset = context.Rbp;
+ stack_frame.AddrStack.Offset = context.Rsp;
+#else
stack_frame.AddrPC.Offset = context.Eip;
- stack_frame.AddrPC.Mode = AddrModeFlat;
stack_frame.AddrFrame.Offset = context.Ebp;
- stack_frame.AddrFrame.Mode = AddrModeFlat;
stack_frame.AddrStack.Offset = context.Esp;
+#endif
+ stack_frame.AddrPC.Mode = AddrModeFlat;
+ stack_frame.AddrFrame.Mode = AddrModeFlat;
stack_frame.AddrStack.Mode = AddrModeFlat;
int frames_count = 0;