Chromium Code Reviews| 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 3986 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
| 3997 JumpIfOOM(masm, rax, kScratchRegister, &already_have_failure); | 3997 JumpIfOOM(masm, rax, kScratchRegister, &already_have_failure); |
| 3998 __ movq(rax, Failure::OutOfMemoryException(0x1), RelocInfo::NONE64); | 3998 __ movq(rax, Failure::OutOfMemoryException(0x1), RelocInfo::NONE64); |
| 3999 __ bind(&already_have_failure); | 3999 __ bind(&already_have_failure); |
| 4000 __ Store(pending_exception, rax); | 4000 __ Store(pending_exception, rax); |
| 4001 // Fall through to the next label. | 4001 // Fall through to the next label. |
| 4002 | 4002 |
| 4003 __ bind(&throw_termination_exception); | 4003 __ bind(&throw_termination_exception); |
| 4004 __ ThrowUncatchable(rax); | 4004 __ ThrowUncatchable(rax); |
| 4005 | 4005 |
| 4006 __ bind(&throw_normal_exception); | 4006 __ bind(&throw_normal_exception); |
| 4007 | |
| 4008 #ifdef ENABLE_DEBUGGER_SUPPORT | |
| 4009 Label proceed_throwing; | |
| 4010 ExternalReference c_entry_frame_to_ignore_exception = | |
| 4011 ExternalReference(Debug_Address::CEntryFrameToIgnoreException(), | |
| 4012 masm->isolate()); | |
| 4013 | |
| 4014 __ xor_(rcx, rcx); | |
| 4015 | |
| 4016 Operand c_entry_frame_to_ignore_exception_operand = | |
| 4017 masm->ExternalOperand(c_entry_frame_to_ignore_exception); | |
| 4018 __ movq(rdx, c_entry_frame_to_ignore_exception_operand); | |
| 4019 | |
| 4020 __ Store(c_entry_frame_to_ignore_exception, rcx); | |
| 4021 | |
| 4022 __ cmpq(rbp, rdx); | |
|
Yang
2013/09/13 09:47:56
Similar to ia32.
Peter.Rybin
2013/09/19 15:35:31
Done.
| |
| 4023 | |
| 4024 __ j(not_equal, &proceed_throwing); | |
| 4025 | |
| 4026 __ LeaveExitFrame(save_doubles_); | |
| 4027 __ ret(0); | |
| 4028 | |
| 4029 __ bind(&proceed_throwing); | |
| 4030 #endif // ENABLE_DEBUGGER_SUPPORT | |
| 4031 | |
| 4007 __ Throw(rax); | 4032 __ Throw(rax); |
| 4008 } | 4033 } |
| 4009 | 4034 |
| 4010 | 4035 |
| 4011 void JSEntryStub::GenerateBody(MacroAssembler* masm, bool is_construct) { | 4036 void JSEntryStub::GenerateBody(MacroAssembler* masm, bool is_construct) { |
| 4012 Label invoke, handler_entry, exit; | 4037 Label invoke, handler_entry, exit; |
| 4013 Label not_outermost_js, not_outermost_js_2; | 4038 Label not_outermost_js, not_outermost_js_2; |
| 4014 | 4039 |
| 4015 ProfileEntryHookStub::MaybeCallEntryHook(masm); | 4040 ProfileEntryHookStub::MaybeCallEntryHook(masm); |
| 4016 | 4041 |
| (...skipping 2783 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
| 6800 __ bind(&fast_elements_case); | 6825 __ bind(&fast_elements_case); |
| 6801 GenerateCase(masm, FAST_ELEMENTS); | 6826 GenerateCase(masm, FAST_ELEMENTS); |
| 6802 } | 6827 } |
| 6803 | 6828 |
| 6804 | 6829 |
| 6805 #undef __ | 6830 #undef __ |
| 6806 | 6831 |
| 6807 } } // namespace v8::internal | 6832 } } // namespace v8::internal |
| 6808 | 6833 |
| 6809 #endif // V8_TARGET_ARCH_X64 | 6834 #endif // V8_TARGET_ARCH_X64 |
| OLD | NEW |