Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(82)

Side by Side Diff: src/debug.h

Issue 3120011: LiveEdit: implement stack manipulations for x64 (Closed)
Patch Set: follow codereview Created 10 years, 4 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch
« no previous file with comments | « src/arm/debug-arm.cc ('k') | src/debug.cc » ('j') | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
1 // Copyright 2006-2008 the V8 project authors. All rights reserved. 1 // Copyright 2006-2008 the V8 project authors. All rights reserved.
2 // Redistribution and use in source and binary forms, with or without 2 // Redistribution and use in source and binary forms, with or without
3 // modification, are permitted provided that the following conditions are 3 // modification, are permitted provided that the following conditions are
4 // met: 4 // met:
5 // 5 //
6 // * Redistributions of source code must retain the above copyright 6 // * Redistributions of source code must retain the above copyright
7 // notice, this list of conditions and the following disclaimer. 7 // notice, this list of conditions and the following disclaimer.
8 // * Redistributions in binary form must reproduce the above 8 // * Redistributions in binary form must reproduce the above
9 // copyright notice, this list of conditions and the following 9 // copyright notice, this list of conditions and the following
10 // disclaimer in the documentation and/or other materials provided 10 // disclaimer in the documentation and/or other materials provided
(...skipping 382 matching lines...) Expand 10 before | Expand all | Expand 10 after
393 static void GenerateSlot(MacroAssembler* masm); 393 static void GenerateSlot(MacroAssembler* masm);
394 static void GenerateLoadICDebugBreak(MacroAssembler* masm); 394 static void GenerateLoadICDebugBreak(MacroAssembler* masm);
395 static void GenerateStoreICDebugBreak(MacroAssembler* masm); 395 static void GenerateStoreICDebugBreak(MacroAssembler* masm);
396 static void GenerateKeyedLoadICDebugBreak(MacroAssembler* masm); 396 static void GenerateKeyedLoadICDebugBreak(MacroAssembler* masm);
397 static void GenerateKeyedStoreICDebugBreak(MacroAssembler* masm); 397 static void GenerateKeyedStoreICDebugBreak(MacroAssembler* masm);
398 static void GenerateConstructCallDebugBreak(MacroAssembler* masm); 398 static void GenerateConstructCallDebugBreak(MacroAssembler* masm);
399 static void GenerateReturnDebugBreak(MacroAssembler* masm); 399 static void GenerateReturnDebugBreak(MacroAssembler* masm);
400 static void GenerateStubNoRegistersDebugBreak(MacroAssembler* masm); 400 static void GenerateStubNoRegistersDebugBreak(MacroAssembler* masm);
401 static void GenerateSlotDebugBreak(MacroAssembler* masm); 401 static void GenerateSlotDebugBreak(MacroAssembler* masm);
402 static void GeneratePlainReturnLiveEdit(MacroAssembler* masm); 402 static void GeneratePlainReturnLiveEdit(MacroAssembler* masm);
403
404 // FrameDropper is a code replacement for a JavaScript frame with possibly
405 // several frames above.
406 // There is no calling conventions here, because it never actually gets
407 // called, it only gets returned to.
403 static void GenerateFrameDropperLiveEdit(MacroAssembler* masm); 408 static void GenerateFrameDropperLiveEdit(MacroAssembler* masm);
404 409
405 // Called from stub-cache.cc. 410 // Called from stub-cache.cc.
406 static void GenerateCallICDebugBreak(MacroAssembler* masm); 411 static void GenerateCallICDebugBreak(MacroAssembler* masm);
407 412
408 // Describes how exactly a frame has been dropped from stack. 413 // Describes how exactly a frame has been dropped from stack.
409 enum FrameDropMode { 414 enum FrameDropMode {
410 // No frame has been dropped. 415 // No frame has been dropped.
411 FRAMES_UNTOUCHED, 416 FRAMES_UNTOUCHED,
412 // The top JS frame had been calling IC stub. IC stub mustn't be called now. 417 // The top JS frame had been calling IC stub. IC stub mustn't be called now.
(...skipping 11 matching lines...) Expand all
424 Object** restarter_frame_function_pointer); 429 Object** restarter_frame_function_pointer);
425 430
426 // Initializes an artificial stack frame. The data it contains is used for: 431 // Initializes an artificial stack frame. The data it contains is used for:
427 // a. successful work of frame dropper code which eventually gets control, 432 // a. successful work of frame dropper code which eventually gets control,
428 // b. being compatible with regular stack structure for various stack 433 // b. being compatible with regular stack structure for various stack
429 // iterators. 434 // iterators.
430 // Returns address of stack allocated pointer to restarted function, 435 // Returns address of stack allocated pointer to restarted function,
431 // the value that is called 'restarter_frame_function_pointer'. The value 436 // the value that is called 'restarter_frame_function_pointer'. The value
432 // at this address (possibly updated by GC) may be used later when preparing 437 // at this address (possibly updated by GC) may be used later when preparing
433 // 'step in' operation. 438 // 'step in' operation.
434 // The implementation is architecture-specific.
435 // TODO(LiveEdit): consider reviewing it as architecture-independent.
436 static Object** SetUpFrameDropperFrame(StackFrame* bottom_js_frame, 439 static Object** SetUpFrameDropperFrame(StackFrame* bottom_js_frame,
437 Handle<Code> code); 440 Handle<Code> code);
438 441
439 static const int kFrameDropperFrameSize; 442 static const int kFrameDropperFrameSize;
440 443
444 // Architecture-specific constant.
445 static const bool kFrameDropperSupported;
446
441 private: 447 private:
442 static bool CompileDebuggerScript(int index); 448 static bool CompileDebuggerScript(int index);
443 static void ClearOneShot(); 449 static void ClearOneShot();
444 static void ActivateStepIn(StackFrame* frame); 450 static void ActivateStepIn(StackFrame* frame);
445 static void ClearStepIn(); 451 static void ClearStepIn();
446 static void ActivateStepOut(StackFrame* frame); 452 static void ActivateStepOut(StackFrame* frame);
447 static void ClearStepOut(); 453 static void ClearStepOut();
448 static void ClearStepNext(); 454 static void ClearStepNext();
449 // Returns whether the compile succeeded. 455 // Returns whether the compile succeeded.
450 static void RemoveDebugInfo(Handle<DebugInfo> debug_info); 456 static void RemoveDebugInfo(Handle<DebugInfo> debug_info);
(...skipping 560 matching lines...) Expand 10 before | Expand all | Expand 10 after
1011 1017
1012 DISALLOW_COPY_AND_ASSIGN(MessageDispatchHelperThread); 1018 DISALLOW_COPY_AND_ASSIGN(MessageDispatchHelperThread);
1013 }; 1019 };
1014 1020
1015 1021
1016 } } // namespace v8::internal 1022 } } // namespace v8::internal
1017 1023
1018 #endif // ENABLE_DEBUGGER_SUPPORT 1024 #endif // ENABLE_DEBUGGER_SUPPORT
1019 1025
1020 #endif // V8_DEBUG_H_ 1026 #endif // V8_DEBUG_H_
OLDNEW
« no previous file with comments | « src/arm/debug-arm.cc ('k') | src/debug.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698