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

Unified Diff: src/x64/codegen-x64.cc

Issue 555164: Fix exit frame type in breakpoint stub (Closed) Base URL: http://v8.googlecode.com/svn/branches/bleeding_edge/
Patch Set: '' Created 10 years, 11 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 side-by-side diff with in-line comments
Download patch
Index: src/x64/codegen-x64.cc
===================================================================
--- src/x64/codegen-x64.cc (revision 3774)
+++ src/x64/codegen-x64.cc (working copy)
@@ -7332,21 +7332,6 @@
}
-int CEntryStub::MinorKey() {
- ASSERT(result_size_ <= 2);
-#ifdef _WIN64
- // Simple results returned in rax (using default code).
- // Complex results must be written to address passed as first argument.
- return (result_size_ < 2) ? 0 : 1;
-#else
- // Single results returned in rax (both AMD64 and Win64 calling conventions)
- // and a struct of two pointers in rax+rdx (AMD64 calling convention only)
- // by default.
- return 0;
-#endif
-}
-
-
void CEntryStub::GenerateThrowTOS(MacroAssembler* masm) {
// Check that stack should contain next handler, frame pointer, state and
// return address in that order.
@@ -7380,7 +7365,6 @@
Label* throw_normal_exception,
Label* throw_termination_exception,
Label* throw_out_of_memory_exception,
- ExitFrame::Mode mode,
bool do_gc,
bool always_allocate_scope) {
// rax: result parameter for PerformGC, if any.
@@ -7392,6 +7376,10 @@
// This pointer is reused in LeaveExitFrame(), so it is stored in a
// callee-saved register.
+ // Simple results returned in rax (both AMD64 and Win64 calling conventions).
+ // Complex results must be written to address passed as first argument.
+ // AMD64 calling convention: a struct of two pointers in rax+rdx
+
if (do_gc) {
// Pass failure code returned from last attempt as first argument to GC.
#ifdef _WIN64
@@ -7463,7 +7451,7 @@
__ j(zero, &failure_returned);
// Exit the JavaScript to C++ exit frame.
- __ LeaveExitFrame(mode, result_size_);
+ __ LeaveExitFrame(mode_, result_size_);
__ ret(0);
// Handling of failure.
@@ -7607,7 +7595,7 @@
}
-void CEntryStub::GenerateBody(MacroAssembler* masm, bool is_debug_break) {
+void CEntryStub::Generate(MacroAssembler* masm) {
// rax: number of arguments including receiver
// rbx: pointer to C function (C callee-saved)
// rbp: frame pointer of calling JS frame (restored after C call)
@@ -7619,12 +7607,8 @@
// this by performing a garbage collection and retrying the
// builtin once.
- ExitFrame::Mode mode = is_debug_break ?
- ExitFrame::MODE_DEBUG :
- ExitFrame::MODE_NORMAL;
-
// Enter the exit frame that transitions from JavaScript to C++.
- __ EnterExitFrame(mode, result_size_);
+ __ EnterExitFrame(mode_, result_size_);
// rax: Holds the context at this point, but should not be used.
// On entry to code generated by GenerateCore, it must hold
@@ -7647,7 +7631,6 @@
&throw_normal_exception,
&throw_termination_exception,
&throw_out_of_memory_exception,
- mode,
false,
false);
@@ -7656,7 +7639,6 @@
&throw_normal_exception,
&throw_termination_exception,
&throw_out_of_memory_exception,
- mode,
true,
false);
@@ -7667,7 +7649,6 @@
&throw_normal_exception,
&throw_termination_exception,
&throw_out_of_memory_exception,
- mode,
true,
true);
« src/codegen.cc ('K') | « src/ia32/debug-ia32.cc ('k') | src/x64/debug-x64.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698