Reviewers: fschneider, Description: Guard the debug check at the start of every JS function with --debug-code so it is not normally compiled in debug builds.
Please review this at http://codereview.chromium.org/268014 SVN Base: http://v8.googlecode.com/svn/branches/bleeding_edge/ Affected files: M src/ia32/virtual-frame-ia32.cc M src/x64/virtual-frame-x64.cc Index: src/ia32/virtual-frame-ia32.cc =================================================================== --- src/ia32/virtual-frame-ia32.cc (revision 3035) +++ src/ia32/virtual-frame-ia32.cc (working copy) @@ -455,14 +455,16 @@ Comment cmnt(masm(), "[ Enter JS frame"); #ifdef DEBUG - // Verify that edi contains a JS function. The following code - // relies on eax being available for use. - __ test(edi, Immediate(kSmiTagMask)); - __ Check(not_zero, - "VirtualFrame::Enter - edi is not a function (smi check)."); - __ CmpObjectType(edi, JS_FUNCTION_TYPE, eax); - __ Check(equal, - "VirtualFrame::Enter - edi is not a function (map check)."); + if (FLAG_debug_code) { + // Verify that edi contains a JS function. The following code + // relies on eax being available for use. + __ test(edi, Immediate(kSmiTagMask)); + __ Check(not_zero, + "VirtualFrame::Enter - edi is not a function (smi check)."); + __ CmpObjectType(edi, JS_FUNCTION_TYPE, eax); + __ Check(equal, + "VirtualFrame::Enter - edi is not a function (map check)."); + } #endif EmitPush(ebp); Index: src/x64/virtual-frame-x64.cc =================================================================== --- src/x64/virtual-frame-x64.cc (revision 3035) +++ src/x64/virtual-frame-x64.cc (working copy) @@ -63,14 +63,16 @@ Comment cmnt(masm(), "[ Enter JS frame"); #ifdef DEBUG - // Verify that rdi contains a JS function. The following code - // relies on rax being available for use. - Condition not_smi = masm()->CheckNotSmi(rdi); - __ Check(not_smi, - "VirtualFrame::Enter - rdi is not a function (smi check)."); - __ CmpObjectType(rdi, JS_FUNCTION_TYPE, rax); - __ Check(equal, - "VirtualFrame::Enter - rdi is not a function (map check)."); + if (FLAG_debug_code) { + // Verify that rdi contains a JS function. The following code + // relies on rax being available for use. + Condition not_smi = masm()->CheckNotSmi(rdi); + __ Check(not_smi, + "VirtualFrame::Enter - rdi is not a function (smi check)."); + __ CmpObjectType(rdi, JS_FUNCTION_TYPE, rax); + __ Check(equal, + "VirtualFrame::Enter - rdi is not a function (map check)."); + } #endif EmitPush(rbp); --~--~---------~--~----~------------~-------~--~----~ v8-dev mailing list [email protected] http://groups.google.com/group/v8-dev -~----------~----~----~----~------~----~------~--~---
