MIPS: Disallow dereferencing deferred handles when generating optimized code.

Port r14388 (6843e0c9), r14389 (331ea32d) and r14390 (c8528d1c)

BUG=

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

git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@14399 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
Refactor ExternalReference::isolate_address() to not rely on Isolate::Current().

R=svenpanne@chromium.org
BUG=

Review URL: https://chromiumcodereview.appspot.com/14429003

git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@14400 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
If the input to an HChange is of type smi, then no need to mark gvn flag changes new space promotion.

BUG=

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

git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@14401 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
Removed unbalanced brackets when printing an LEnvironment.

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

git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@14402 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
Prepare push to trunk.  Now working on version 3.18.4.

R=yangguo@chromium.org

Review URL: https://chromiumcodereview.appspot.com/14139031

git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@14403 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
Replace qsort with std::sort.

std::sort is a template, so it can be inlined more aggressively. Also, it's
O(n log n), while libc's qsort is O(n^2)

BUG=2639

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

Patch from Jochen Eisinger <jochen@chromium.org>.

git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@14406 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
Add monomorphic CompareNilICs and Crankshaft support

R=mvstanton@chromium.org

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

git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@14407 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
Fix clang build for x64.

R=ulan@chromium.org
BUG=

Review URL: https://chromiumcodereview.appspot.com/14471004

git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@14408 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
Simplify some code related to x64 calling convention.

R=mvstanton@chromium.org
BUG=

Review URL: https://chromiumcodereview.appspot.com/13940014

git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@14409 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
Fix segmentation fault in CodeMap::Print

CodeEntry* is always NULL for SharedFunctionInfo entries in the CodeMap. Take this into account when printing the map.

Drive-by: removed  CodeEntry::shared_id() which is never called.

BUG=None

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

git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@14410 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
Properly consider Double inputs for representation inference when they are not marked as kFlexibleRepresentation

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

git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@14413 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
MathSqrt and MathPowHalf do not cause any promotion.

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

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

The generator object methods "next", "send", and "throw" now
include some inline assembly to set up a resumed stack frame.  In some
common cases, we can just jump back into the frame to resume it.
Otherwise the resume code calls out to a runtime to fill in the operand
stack, rewind the handlers, and possibly to throw an exception.

BUG=v8:2355
TESTS=mjsunit/harmony/generators-iteration

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

Patch from Andy Wingo <wingo@igalia.com>.

git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@14415 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
Remove Isolate::Current() from histograms.

R=svenpanne@chromium.org
BUG=

Review URL: https://chromiumcodereview.appspot.com/14471007

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

R=svenpanne@chromium.org
BUG=

Review URL: https://chromiumcodereview.appspot.com/14476003

git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@14417 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
Change cctest/test-lockers to not copy persistent handles around.

Instead, create Local handles to pass them around. This also means that the
code needs to be shifted around a bit such that a handle scope exists when
creating threads.

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

Patch from Jochen Eisinger <jochen@chromium.org>.

git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@14420 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
Clean up VMState a little bit.

R=svenpanne@chromium.org
BUG=

Review URL: https://chromiumcodereview.appspot.com/14139033

git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@14421 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
Fixed HUnaryMathOperation regarding its possible operations.

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

git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@14422 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
New GC APIs, try 2.

With these APIs, the embedder doesn't need to copy Persistent handles around.

BUG=

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

Patch from Marja Hölttä <marja@chromium.org>.

git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@14423 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
Fix generator suspend and resume on ARM

This CL fixes a number of rookie mistakes in
FullCodeGenerator::VisitYield and
FullCodeGenerator::EmitGeneratorResume, and re-enables the
generators-iteration test on ARM.

R=mstarzinger@chromium.org
BUG=v8:2355
TEST=mjsunit/harmony/generators-iteration

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

Patch from Andy Wingo <wingo@igalia.com>.

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