OK LGTM
On Jan 27, 2011 7:23 PM, <[email protected]> wrote:
> Revision: 6519
> Author: [email protected]
> Date: Thu Jan 27 10:21:07 2011
> Log: Revert "Unification: introduce
> ExternalReference::pending_exception_address()."
>
> This reverts r6518.
>
> [email protected]
>
> Review URL: http://codereview.chromium.org/6359015
> http://code.google.com/p/v8/source/detail?r=6519
>
> Modified:
> /branches/bleeding_edge/src/arm/code-stubs-arm.cc
> /branches/bleeding_edge/src/assembler.cc
> /branches/bleeding_edge/src/assembler.h
> /branches/bleeding_edge/src/ia32/code-stubs-ia32.cc
> /branches/bleeding_edge/src/mips/codegen-mips.cc
> /branches/bleeding_edge/src/top.h
> /branches/bleeding_edge/src/x64/code-stubs-x64.cc
>
> =======================================
> --- /branches/bleeding_edge/src/arm/code-stubs-arm.cc Thu Jan 27 10:10:45
> 2011
> +++ /branches/bleeding_edge/src/arm/code-stubs-arm.cc Thu Jan 27 10:21:07
> 2011
> @@ -3132,7 +3132,7 @@
> // Set pending exception and r0 to out of memory exception.
> Failure* out_of_memory = Failure::OutOfMemoryException();
> __ mov(r0, Operand(reinterpret_cast<int32_t>(out_of_memory)));
> - __ mov(r2, Operand(ExternalReference::pending_exception_address()));
> + __ mov(r2,
> Operand(ExternalReference(Top::k_pending_exception_address)));
> __ str(r0, MemOperand(r2));
> }
>
> @@ -3262,7 +3262,7 @@
> // Retrieve the pending exception and clear the variable.
> __ mov(ip, Operand(ExternalReference::the_hole_value_location()));
> __ ldr(r3, MemOperand(ip));
> - __ mov(ip, Operand(ExternalReference::pending_exception_address()));
> + __ mov(ip,
Operand(ExternalReference(Top::k_pending_exception_address)));
> __ ldr(r0, MemOperand(ip));
> __ str(r3, MemOperand(ip));
>
> @@ -3395,7 +3395,7 @@
> // exception field in the JSEnv and return a failure sentinel.
> // Coming in here the fp will be invalid because the PushTryHandler below
> // sets it to 0 to signal the existence of the JSEntry frame.
> - __ mov(ip, Operand(ExternalReference::pending_exception_address()));
> + __ mov(ip,
Operand(ExternalReference(Top::k_pending_exception_address)));
> __ str(r0, MemOperand(ip));
> __ mov(r0, Operand(reinterpret_cast<int32_t>(Failure::Exception())));
> __ b(&exit);
> @@ -3412,7 +3412,7 @@
> // Clear any pending exceptions.
> __ mov(ip, Operand(ExternalReference::the_hole_value_location()));
> __ ldr(r5, MemOperand(ip));
> - __ mov(ip, Operand(ExternalReference::pending_exception_address()));
> + __ mov(ip,
Operand(ExternalReference(Top::k_pending_exception_address)));
> __ str(r5, MemOperand(ip));
>
> // Invoke the function by calling through JS entry trampoline builtin.
> @@ -4079,7 +4079,7 @@
> // TODO(592): Rerunning the RegExp to get the stack overflow exception.
> __ mov(r0, Operand(ExternalReference::the_hole_value_location()));
> __ ldr(r0, MemOperand(r0, 0));
> - __ mov(r1, Operand(ExternalReference::pending_exception_address()));
> + __ mov(r1,
Operand(ExternalReference(Top::k_pending_exception_address)));
> __ ldr(r1, MemOperand(r1, 0));
> __ cmp(r0, r1);
> __ b(eq, &runtime);
> =======================================
> --- /branches/bleeding_edge/src/assembler.cc Thu Jan 27 10:10:45 2011
> +++ /branches/bleeding_edge/src/assembler.cc Thu Jan 27 10:21:07 2011
> @@ -711,11 +711,6 @@
> ExternalReference ExternalReference::handle_scope_limit_address() {
> return ExternalReference(HandleScope::current_limit_address());
> }
> -
> -
> -ExternalReference ExternalReference::pending_exception_address() {
> - return ExternalReference(Top::pending_exception_address());
> -}
>
>
> ExternalReference ExternalReference::scheduled_exception_address() {
> =======================================
> --- /branches/bleeding_edge/src/assembler.h Thu Jan 27 10:10:45 2011
> +++ /branches/bleeding_edge/src/assembler.h Thu Jan 27 10:21:07 2011
> @@ -551,7 +551,6 @@
> static ExternalReference handle_scope_limit_address();
> static ExternalReference handle_scope_level_address();
>
> - static ExternalReference pending_exception_address();
> static ExternalReference scheduled_exception_address();
>
> // Static variables containing common double constants.
> =======================================
> --- /branches/bleeding_edge/src/ia32/code-stubs-ia32.cc Thu Jan 27
10:10:45
> 2011
> +++ /branches/bleeding_edge/src/ia32/code-stubs-ia32.cc Thu Jan 27
10:21:07
> 2011
> @@ -3922,11 +3922,10 @@
> // stack overflow (on the backtrack stack) was detected in RegExp code
> but
> // haven't created the exception yet. Handle that in the runtime system.
> // TODO(592): Rerunning the RegExp to get the stack overflow exception.
> - ExternalReference pending_exception_address =
> - ExternalReference::pending_exception_address();
> + ExternalReference pending_exception(Top::k_pending_exception_address);
> __ mov(eax,
>
> Operand::StaticVariable(ExternalReference::the_hole_value_location()));
> - __ cmp(eax, Operand::StaticVariable(pending_exception_address));
> + __ cmp(eax, Operand::StaticVariable(pending_exception));
> __ j(equal, &runtime);
> __ bind(&failure);
> // For failure and exception return null.
> @@ -4716,8 +4715,7 @@
> __ j(equal, throw_out_of_memory_exception);
>
> // Retrieve the pending exception and clear the variable.
> - ExternalReference pending_exception_address =
> - ExternalReference::pending_exception_address();
> + ExternalReference
> pending_exception_address(Top::k_pending_exception_address);
> __ mov(eax, Operand::StaticVariable(pending_exception_address));
> __ mov(edx,
>
> Operand::StaticVariable(ExternalReference::the_hole_value_location()));
> @@ -4769,10 +4767,9 @@
> __ mov(Operand::StaticVariable(external_caught), eax);
>
> // Set pending exception and eax to out of memory exception.
> - ExternalReference pending_exception_address =
> - ExternalReference::pending_exception_address();
> + ExternalReference pending_exception(Top::k_pending_exception_address);
> __ mov(eax,
> reinterpret_cast<int32_t>(Failure::OutOfMemoryException()));
> - __ mov(Operand::StaticVariable(pending_exception_address), eax);
> + __ mov(Operand::StaticVariable(pending_exception), eax);
> }
>
> // Clear the context pointer.
> @@ -4888,9 +4885,8 @@
>
> // Caught exception: Store result (exception) in the pending
> // exception field in the JSEnv and return a failure sentinel.
> - ExternalReference pending_exception_address =
> - ExternalReference::pending_exception_address();
> - __ mov(Operand::StaticVariable(pending_exception_address), eax);
> + ExternalReference pending_exception(Top::k_pending_exception_address);
> + __ mov(Operand::StaticVariable(pending_exception), eax);
> __ mov(eax, reinterpret_cast<int32_t>(Failure::Exception()));
> __ jmp(&exit);
>
> @@ -4901,7 +4897,7 @@
> // Clear any pending exceptions.
> __ mov(edx,
>
> Operand::StaticVariable(ExternalReference::the_hole_value_location()));
> - __ mov(Operand::StaticVariable(pending_exception_address), edx);
> + __ mov(Operand::StaticVariable(pending_exception), edx);
>
> // Fake a receiver (NULL).
> __ push(Immediate(0)); // receiver
> =======================================
> --- /branches/bleeding_edge/src/mips/codegen-mips.cc Thu Jan 27 10:10:45
> 2011
> +++ /branches/bleeding_edge/src/mips/codegen-mips.cc Thu Jan 27 10:21:07
> 2011
> @@ -1178,7 +1178,7 @@
> __ LoadExternalReference(t0,
> ExternalReference::the_hole_value_location());
> __ lw(a3, MemOperand(t0));
> __ LoadExternalReference(t0,
> - ExternalReference::pending_exception_address());
> + ExternalReference(Top::k_pending_exception_address));
> __ lw(v0, MemOperand(t0));
> __ sw(a3, MemOperand(t0));
>
> @@ -1311,7 +1311,7 @@
> // Coming in here the fp will be invalid because the PushTryHandler below
> // sets it to 0 to signal the existence of the JSEntry frame.
> __ LoadExternalReference(t0,
> - ExternalReference::pending_exception_address());
> + ExternalReference(Top::k_pending_exception_address));
> __ sw(v0, MemOperand(t0)); // We come back from 'invoke'. result is in
> v0.
> __ li(v0, Operand(reinterpret_cast<int32_t>(Failure::Exception())));
> __ b(&exit);
> @@ -1329,7 +1329,7 @@
> __ LoadExternalReference(t0,
> ExternalReference::the_hole_value_location());
> __ lw(t1, MemOperand(t0));
> __ LoadExternalReference(t0,
> - ExternalReference::pending_exception_address());
> + ExternalReference(Top::k_pending_exception_address));
> __ sw(t1, MemOperand(t0));
>
> // Invoke the function by calling through JS entry trampoline builtin.
> =======================================
> --- /branches/bleeding_edge/src/top.h Thu Jan 27 10:10:45 2011
> +++ /branches/bleeding_edge/src/top.h Thu Jan 27 10:21:07 2011
> @@ -142,6 +142,7 @@
> C(handler_address) \
> C(c_entry_fp_address) \
> C(context_address) \
> + C(pending_exception_address) \
> C(external_caught_exception_address)
>
> #ifdef ENABLE_LOGGING_AND_PROFILING
> =======================================
> --- /branches/bleeding_edge/src/x64/code-stubs-x64.cc Thu Jan 27 10:10:45
> 2011
> +++ /branches/bleeding_edge/src/x64/code-stubs-x64.cc Thu Jan 27 10:21:07
> 2011
> @@ -2126,7 +2126,8 @@
> // stack overflow (on the backtrack stack) was detected in RegExp code
> but
> // haven't created the exception yet. Handle that in the runtime system.
> // TODO(592): Rerunning the RegExp to get the stack overflow exception.
> - __ movq(kScratchRegister,
> ExternalReference::pending_exception_address());
> + ExternalReference
> pending_exception_address(Top::k_pending_exception_address);
> + __ movq(kScratchRegister, pending_exception_address);
> __ Cmp(kScratchRegister, Factory::the_hole_value());
> __ j(equal, &runtime);
> __ bind(&failure);
> @@ -2884,7 +2885,8 @@
> __ j(equal, throw_out_of_memory_exception);
>
> // Retrieve the pending exception and clear the variable.
> - __ movq(kScratchRegister,
> ExternalReference::pending_exception_address());
> + ExternalReference
> pending_exception_address(Top::k_pending_exception_address);
> + __ movq(kScratchRegister, pending_exception_address);
> __ movq(rax, Operand(kScratchRegister, 0));
> __ movq(rdx, ExternalReference::the_hole_value_location());
> __ movq(rdx, Operand(rdx, 0));
> @@ -2934,8 +2936,9 @@
> __ store_rax(external_caught);
>
> // Set pending exception and rax to out of memory exception.
> + ExternalReference pending_exception(Top::k_pending_exception_address);
> __ movq(rax, Failure::OutOfMemoryException(), RelocInfo::NONE);
> - __ store_rax(ExternalReference::pending_exception_address());
> + __ store_rax(pending_exception);
> }
>
> // Clear the context pointer.
> @@ -3088,7 +3091,8 @@
>
> // Caught exception: Store result (exception) in the pending
> // exception field in the JSEnv and return a failure sentinel.
> - __ store_rax(ExternalReference::pending_exception_address());
> + ExternalReference pending_exception(Top::k_pending_exception_address);
> + __ store_rax(pending_exception);
> __ movq(rax, Failure::Exception(), RelocInfo::NONE);
> __ jmp(&exit);
>
> @@ -3098,7 +3102,7 @@
>
> // Clear any pending exceptions.
> __ load_rax(ExternalReference::the_hole_value_location());
> - __ store_rax(ExternalReference::pending_exception_address());
> + __ store_rax(pending_exception);
>
> // Fake a receiver (NULL).
> __ push(Immediate(0)); // receiver
>
> --
> v8-dev mailing list
> [email protected]
> http://groups.google.com/group/v8-dev

-- 
v8-dev mailing list
[email protected]
http://groups.google.com/group/v8-dev

Reply via email to