| OLD | NEW |
| 1 // Copyright 2013 the V8 project authors. All rights reserved. | 1 // Copyright 2013 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 3709 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 3720 JumpIfOOM(masm, rax, kScratchRegister, &already_have_failure); | 3720 JumpIfOOM(masm, rax, kScratchRegister, &already_have_failure); |
| 3721 __ movq(rax, Failure::OutOfMemoryException(0x1), RelocInfo::NONE64); | 3721 __ movq(rax, Failure::OutOfMemoryException(0x1), RelocInfo::NONE64); |
| 3722 __ bind(&already_have_failure); | 3722 __ bind(&already_have_failure); |
| 3723 __ Store(pending_exception, rax); | 3723 __ Store(pending_exception, rax); |
| 3724 // Fall through to the next label. | 3724 // Fall through to the next label. |
| 3725 | 3725 |
| 3726 __ bind(&throw_termination_exception); | 3726 __ bind(&throw_termination_exception); |
| 3727 __ ThrowUncatchable(rax); | 3727 __ ThrowUncatchable(rax); |
| 3728 | 3728 |
| 3729 __ bind(&throw_normal_exception); | 3729 __ bind(&throw_normal_exception); |
| 3730 |
| 3731 #ifdef ENABLE_DEBUGGER_SUPPORT |
| 3732 Label proceed_throwing; |
| 3733 ExternalReference c_entry_frame_to_ignore_exception = |
| 3734 ExternalReference(Debug_Address::CEntryFrameToIgnoreException(), |
| 3735 masm->isolate()); |
| 3736 Operand c_entry_frame_to_ignore_exception_operand = |
| 3737 masm->ExternalOperand(c_entry_frame_to_ignore_exception); |
| 3738 |
| 3739 __ cmpq(rbp, c_entry_frame_to_ignore_exception_operand); |
| 3740 __ j(not_equal, &proceed_throwing); |
| 3741 __ Set(c_entry_frame_to_ignore_exception_operand, 0); |
| 3742 __ LeaveExitFrame(save_doubles_); |
| 3743 __ ret(0); |
| 3744 |
| 3745 __ bind(&proceed_throwing); |
| 3746 #endif // ENABLE_DEBUGGER_SUPPORT |
| 3747 |
| 3730 __ Throw(rax); | 3748 __ Throw(rax); |
| 3731 } | 3749 } |
| 3732 | 3750 |
| 3733 | 3751 |
| 3734 void JSEntryStub::GenerateBody(MacroAssembler* masm, bool is_construct) { | 3752 void JSEntryStub::GenerateBody(MacroAssembler* masm, bool is_construct) { |
| 3735 Label invoke, handler_entry, exit; | 3753 Label invoke, handler_entry, exit; |
| 3736 Label not_outermost_js, not_outermost_js_2; | 3754 Label not_outermost_js, not_outermost_js_2; |
| 3737 | 3755 |
| 3738 ProfileEntryHookStub::MaybeCallEntryHook(masm); | 3756 ProfileEntryHookStub::MaybeCallEntryHook(masm); |
| 3739 | 3757 |
| (...skipping 2806 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 6546 __ bind(&fast_elements_case); | 6564 __ bind(&fast_elements_case); |
| 6547 GenerateCase(masm, FAST_ELEMENTS); | 6565 GenerateCase(masm, FAST_ELEMENTS); |
| 6548 } | 6566 } |
| 6549 | 6567 |
| 6550 | 6568 |
| 6551 #undef __ | 6569 #undef __ |
| 6552 | 6570 |
| 6553 } } // namespace v8::internal | 6571 } } // namespace v8::internal |
| 6554 | 6572 |
| 6555 #endif // V8_TARGET_ARCH_X64 | 6573 #endif // V8_TARGET_ARCH_X64 |
| OLD | NEW |