Revert "Parser & internalizing: efficiency fixes."

This reverts commit 94a08565d79a13056b9d964428798dac564905bc for
breaking layout tests.

TBR=marja@chromium.org

Review URL: https://codereview.chromium.org/692333006

git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@25121 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
[x64] 64-bit shift left by 32 or more covers sign/zero extend.

TEST=unittests
R=jarin@chromium.org

Review URL: https://codereview.chromium.org/704703002

git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@25123 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
X87:  [turbofan] Add AllocateHeapNumberStub to avoid runtime call.

port ee95552f291d3c1fff78bc4f8d8621e84976e5c9 (r25107)

original commit message:
  [turbofan] Add AllocateHeapNumberStub to avoid runtime call.

BUG=
R=bmeurer@chromium.org

Review URL: https://codereview.chromium.org/701033002

Patch from Chunyang Dai <chunyang.dai@intel.com>.

git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@25124 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
Set the FPU precision control to double-precision.

The default double precision control of FPU is extended double-precision.
While the number definition for JavaScript is double-precision. We use
the FPU control word to set the doulbe precision and replace the original
solution which store the data to memory and load it again.

This patch also fixes the error that Sunspider 1.0.2 can not run with V8 if
sse2 support is disabled.

BUG=
R=weiliang.lin@intel.com

Review URL: https://codereview.chromium.org/700053003

Patch from Chunyang Dai <chunyang.dai@intel.com>.

git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@25125 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
Allow uncaught exception messaging in Object.observe callbacks.

This also naturally handles pausing on uncaught exceptions in Object.observe callbacks.

R=adamk@chromium.org, yangguo@chromium.org, yurys@chromium.org
BUG=chromium:335660
LOG=Y

Review URL: https://codereview.chromium.org/692313003

git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@25126 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
Truncate strings synchronized.

BUG=
R=jarin@chromium.org

Review URL: https://codereview.chromium.org/702743002

git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@25127 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
[turbofan] Fix missing machine type for float32/float64 array accesses.

TEST=mjsunit/asm
R=svenpanne@chromium.org

Review URL: https://codereview.chromium.org/703883002

git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@25128 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
Don't crash if the tm_zone field returned by localtime is NULL

BUG=chromium:158355
R=svenpanne@chromium.org
LOG=n

Review URL: https://codereview.chromium.org/662093003

git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@25129 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
Introduce new stepping mode to step into another frame.

R=aandrey@chromium.org
BUG=chromium:267592
LOG=Y

Review URL: https://codereview.chromium.org/690263004

git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@25130 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
Fix enum in debug.h

TBR=ishell@chromium.org

Review URL: https://codereview.chromium.org/700103002

git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@25131 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
x32: disable turbofan for x32 port

BUG=
R=titzer@chromium.org

Review URL: https://codereview.chromium.org/697353003

Patch from Weilang Lin <weiliang.lin@intel.com>.

git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@25133 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
Add test cases based on the programs from the Embenchen benchmark suite.

TEST=mjsunit/asm/embenchen
R=dcarney@chromium.org

Review URL: https://codereview.chromium.org/704653004

git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@25135 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
TransitionArray now uses <is_data_property, name, attributes> tuple as a key, which allows to have several entries for the same property name.

R=verwaest@chromium.org

Review URL: https://codereview.chromium.org/661133002

git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@25136 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
Make special RPO computation iterative during scheduling.

This contains the following changes squashed together:
- Switch BasicBlock::loop_end to be a basic block instead of an RPO.
- Switch ScheduleLate to use dominator depth instead of RPO.
- Switch ScheduleEarly to use dominator depth instead of RPO.
- Push out absolute RPO ordering everywhere else in the scheduler.
- Keep linked list of blocks in RPO order while scheduling.
- Switch from RPO number to depth for dominator calculation.

R=jarin@chromium.org

Review URL: https://codereview.chromium.org/696363002

git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@25138 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
Add fast-variants feature to test driver.

BUG=
R=bmeurer@chromium.org

Review URL: https://codereview.chromium.org/704723002

git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@25139 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
Don't use C++11's std::trunc and std::round, use the traditional C functions.

R=bmeurer@chromium.org

Review URL: https://codereview.chromium.org/703893002

git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@25140 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
[turbofan] Propagate "deferredness" to dominated basic blocks.

TEST=cctest/test-scheduler
R=mstarzinger@chromium.org

Review URL: https://codereview.chromium.org/686273005

git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@25141 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
Reland "Optimize function across closures."

R=mvstanton@chromium.org

Review URL: https://codereview.chromium.org/703603003

git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@25142 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
Handle store buffer slot overwrite during object promotion.

The bad scenario this fix handles:

We have a slot in a free list, then promote the object pointed-to by
the slot during scavenge. When allocating the space for the promoted
object, we overwrite the slot with the free list entry map if the
object is allocated just before the slot. After the allocation,
ScavengingVisitor::PromoteObject overwrites the slot with the
address of the allocated object, thus corrupting the free list.

Unfortunately, we do not have a way to construct a reliable repro
case because we would need to somehow craft a free list and store
buffer slot to be in the right configuration.

R=hpayer@chromium.org
BUG=

Review URL: https://codereview.chromium.org/695213004

git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@25143 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
[turbofan] Use load/store indexes as 64-bit registers on arm64.

Since r25024 load/store indexes are 64-bit value but arm64 backend was still
treating them as 32-bit value.

R=bmeurer@chromium.org

Review URL: https://codereview.chromium.org/698383003

git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@25144 ce2b1a6d-e550-0410-aec6-3dcde31c8c00