diff options
author | Ryan <ry@tinyclouds.org> | 2009-08-25 13:47:18 +0200 |
---|---|---|
committer | Ryan <ry@tinyclouds.org> | 2009-08-25 13:47:18 +0200 |
commit | b5b65ddcd776e59d35200105ed3420c04d07cae9 (patch) | |
tree | 1c0863fe9f268d1910e2ced36be96514d945139d /deps/v8/src/platform-win32.cc | |
parent | b0a362a72734deb286830e26a3eb20e20234f3e9 (diff) | |
download | node-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.cc | 18 |
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; |