MIPS: Generator objects can suspend

Port r14353 (f4bb81d1)

Original commit message:
* src/ast.h:
* src/parser.cc: Differentiate between the different kinds of yields, in
  anticipation of boxing return values.  Parse `return' into `yield' in
  a generator.

* src/runtime.h:
* src/runtime.cc (Runtime_SuspendJSGeneratorObject): New horrible
  runtime function: saves continuation, context, and operands into the
  generator object.

* src/arm/full-codegen-arm.cc (VisitYield):
* src/ia32/full-codegen-ia32.cc (VisitYield):
* src/x64/full-codegen-x64.cc (VisitYield): Arrange to call
  SuspendJSGeneratorObject.  If the call returns the hole, we suspend.
  Otherwise we resume.

BUG=v8:2355
TEST=These codepaths are tested when the generator is first invoked, and so
are covered by mjsunit/harmony/generators-objects.js.

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

git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@14363 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
Improvements in lithium code generation. Recognizing if some operands are constants, we can often save on registers and instructions.

BUG=

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

git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@14364 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
Infer smi-range for smi-typed values.

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

git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@14365 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
Skip one generators test because of no-snap failures.

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

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

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

R=jkummerow@chromium.org

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

git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@14367 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
Various improvements regarding the way we print code code comments.

* All Lithium instructions have an associated Hydrogen instruction now,
  simplifying things.

* Consistently print <Lithium instruction number,Hydrogen value id> prefixes.

* Do not print uninteresting Lithium instructions like empty gaps, jumps to the
  next instruction, etc.

* Removed special handling of HChange-like instructions, it is totally unclear
  why they had this special treatment. If we really want to print more
  information about Lithium instructions, we should do it in a totally way,
  anyway (e.g. by unifying things with the generation of hydrogen*.cfg files).

* Made deferred code and the jump table stand out a little bit more.

* Print info about special blocks like loop headers and OSR entries.

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

git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@14370 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
ARM: Fix erroneous detection of Double result type in Integer32 BinaryOpStubs

BUG=v8:2648

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

git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@14371 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
Replace CheckBuilder with IfBuilder everywhere.

This deprecates and removes the CheckBuilder which is less powerful
than the generic IfBuilder which can deopt as well by now.

R=jkummerow@chromium.org

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

git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@14372 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
Add d8 functionality for switching between realms (a.k.a. contexts), 2nd try

The only difference to the previous implementation (https://codereview.chromium.org/14295011/) is in patch set 2.

R=yangguo@chromium.org
BUG=

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

git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@14373 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
Make Clang plugins directory configurable for GCMole.

R=jkummerow@chromium.org

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

git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@14374 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
Fix outdated build/README.txt

BUG=v8:2649

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

git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@14375 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
Disable ParserSync test in GC stress mode for now.

R=jkummerow@chromium.org
TEST=cctest/test-parsing/ParserSync

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

git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@14376 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
Ensure callbacks transitions are actually followed.

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

git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@14377 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
Add methods to allow resuming execution after calling TerminateExecution().

R=mvstanton@chromium.org
BUG=v8:2361

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

Patch from Andrew Paprocki <andrew@ishiboo.com>.

git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@14378 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
create uniform string api

R=yangguo@chromium.org
BUG=

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

Patch from Dan Carney <dcarney@chromium.org>.

git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@14379 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
Fixed issue in StoreNamedField codegen where integer32 constants were not converted to a smi.

BUG=

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

git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@14380 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
Merge commit '2819e5ee01c6b9caf803cf5631776ace0a1abeb1' into hj-dev-palfia

Conflicts:
	src/mips/full-codegen-mips.cc
MIPS: Improvements in lithium code generation. Recognizing if some operands are constants, we can often save on registers and instructions.

Port r14364 (2819e5ee)
Merge commit 'b5c4a990a68addf7298f5b1e41410026774b445d' into hj-dev-palfia
Ignore observed Double output in binary operations when all uses are truncating to Integer32

BUG=v8:2424

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

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