That was snapshot=on issue: I ran tests with plain ./tools/test.py vs. scons ... snapshot=on && ./tools/test.py --no-build dance on the bots.
So reverting was the right thing. Sorry for noise, everyone. yours, anton. On Thu, Jan 27, 2011 at 9:24 PM, Anton Muhin <[email protected]> wrote: > Weird. Tests ran fine on my box. Investigating. > > yours, > anton. > > On Thu, Jan 27, 2011 at 9:22 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
