| OLD | NEW |
| 1 // Copyright 2012 the V8 project authors. All rights reserved. | 1 // Copyright 2012 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 4577 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 4588 JumpIfOOM(masm, eax, ecx, &already_have_failure); | 4588 JumpIfOOM(masm, eax, ecx, &already_have_failure); |
| 4589 __ mov(eax, reinterpret_cast<int32_t>(Failure::OutOfMemoryException(0x1))); | 4589 __ mov(eax, reinterpret_cast<int32_t>(Failure::OutOfMemoryException(0x1))); |
| 4590 __ bind(&already_have_failure); | 4590 __ bind(&already_have_failure); |
| 4591 __ mov(Operand::StaticVariable(pending_exception), eax); | 4591 __ mov(Operand::StaticVariable(pending_exception), eax); |
| 4592 // Fall through to the next label. | 4592 // Fall through to the next label. |
| 4593 | 4593 |
| 4594 __ bind(&throw_termination_exception); | 4594 __ bind(&throw_termination_exception); |
| 4595 __ ThrowUncatchable(eax); | 4595 __ ThrowUncatchable(eax); |
| 4596 | 4596 |
| 4597 __ bind(&throw_normal_exception); | 4597 __ bind(&throw_normal_exception); |
| 4598 |
| 4599 #ifdef ENABLE_DEBUGGER_SUPPORT |
| 4600 Label proceed_throwing; |
| 4601 ExternalReference c_entry_frame_to_ignore_exception = |
| 4602 ExternalReference(Debug_Address::CEntryFrameToIgnoreException(), |
| 4603 masm->isolate()); |
| 4604 |
| 4605 __ cmp(ebp, Operand::StaticVariable(c_entry_frame_to_ignore_exception)); |
| 4606 __ j(not_equal, &proceed_throwing, Label::kNear); |
| 4607 __ mov(Operand::StaticVariable(c_entry_frame_to_ignore_exception), |
| 4608 Immediate(0)); |
| 4609 __ LeaveExitFrame(save_doubles_ == kSaveFPRegs); |
| 4610 __ ret(0); |
| 4611 |
| 4612 __ bind(&proceed_throwing); |
| 4613 #endif // ENABLE_DEBUGGER_SUPPORT |
| 4614 |
| 4598 __ Throw(eax); | 4615 __ Throw(eax); |
| 4599 } | 4616 } |
| 4600 | 4617 |
| 4601 | 4618 |
| 4602 void JSEntryStub::GenerateBody(MacroAssembler* masm, bool is_construct) { | 4619 void JSEntryStub::GenerateBody(MacroAssembler* masm, bool is_construct) { |
| 4603 Label invoke, handler_entry, exit; | 4620 Label invoke, handler_entry, exit; |
| 4604 Label not_outermost_js, not_outermost_js_2; | 4621 Label not_outermost_js, not_outermost_js_2; |
| 4605 | 4622 |
| 4606 ProfileEntryHookStub::MaybeCallEntryHook(masm); | 4623 ProfileEntryHookStub::MaybeCallEntryHook(masm); |
| 4607 | 4624 |
| (...skipping 2849 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 7457 __ bind(&fast_elements_case); | 7474 __ bind(&fast_elements_case); |
| 7458 GenerateCase(masm, FAST_ELEMENTS); | 7475 GenerateCase(masm, FAST_ELEMENTS); |
| 7459 } | 7476 } |
| 7460 | 7477 |
| 7461 | 7478 |
| 7462 #undef __ | 7479 #undef __ |
| 7463 | 7480 |
| 7464 } } // namespace v8::internal | 7481 } } // namespace v8::internal |
| 7465 | 7482 |
| 7466 #endif // V8_TARGET_ARCH_IA32 | 7483 #endif // V8_TARGET_ARCH_IA32 |
| OLD | NEW |