MIPS: Fix bugs in IfBuilder and improve functionality

Port r14327 (21310b91)

BUG=

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

git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@14343 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
MIPS: HArgument instructions currently require a frame. In Lithium we can ensure a frame is created for these instructions via a compile info flag.

Port r14339 (7d544be1)

BUG=

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

git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@14344 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
MIPS: Add infrastructure to automatucally generate IC miss stubs

Port r14342 (24df6264)

BUG=

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

git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@14345 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
Removed redundant instruction in VerifyX87StackDepth()

BUG=

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

git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@14346 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
Handle retry-after-gc failures within LoadIC::Load and StoreIC::Store.

Follow-up for r14321, makes the remaining unsafe calls to runtime functions during ic computation safe.

R=verwaest@chromium.org
BUG=222301

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

git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@14347 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
Revert r14252 as it broke --prof for some cases

R=jkummerow
BUG=v8:2642

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

git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@14348 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
Simplified LCodeGen::GetNextEmittedBlock and LCodeGen::EmitGoto a bit.

GetNextEmittedBlock is always called with the same argument (an instance
variable), so let's remove it. In EmitGoto, avoid assignment to an argument.

This CL is split off another CL for easier reviewing.

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

git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@14349 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
Switch GCMole to use GYP build file instead of SCons.

R=jkummerow@chromium.org

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

git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@14350 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
Remove unused member variables in IfBuilder

R=jkummerow@chromium.org

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

git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@14351 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
Replace math.h with cmath

This will make it easier to use other STL headers in the future

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

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

git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@14352 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
Generator objects can suspend

* 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/13704010

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

git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@14353 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
Update tests to use std::isnan instead of isnan

Should fix compilation breakage after r14352

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

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

git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@14354 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
Update arm and mips simulator to also use cmath

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

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

git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@14355 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
Remove heap snapshot size limit.

As long as frontend now stores snapshots in external arrays
it doesn't make sense to check the collected snapshot size on the
backend side. In other words if backend has managed to fit the
collected snapshot into its memory, it should also fit into the
frontend's memory.

R=yurys@chromium.org
BUG=chromium:232305

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

git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@14356 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
Fix build failures on Win64 since r14354.

R=ulan@chromium.org

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

git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@14357 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
Propagate OOM exception instead of crashing in CALL_HEAP_FUNCTION_PASS_EXCEPTION macro.

R=jkummerow@chromium.org
BUG=webkit/fast/js/concat-large-strings-crash.html

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

git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@14358 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
RecordWriteStubs on ARM need to save FP registers

A previous change erroneously stopped saving fp registers for write stubs in
snapshotted code. This CL restores correct behavior, and makes sure code that
saves fp registers checks at runtime for 16 or 32 fp registers. Also fix a bug
in the arm simulator debugger.

BUG=

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

git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@14359 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
Switch elements access to use IfBuilder instead of CheckBuilder.

R=danno@chromium.org

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

git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@14360 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
OS::MemMove/OS::MemCopy: Don't call through to generated code when size == 0 to avoid prefetching invalid memory

BUG=chromium:233500

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

git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@14361 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
Refactor HCheckMaps to have a private constructor, removing duplicated code and simplifying calls in clients.
Ignore bsuite directory.

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

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