port 8965b683ce (r29561)
original commit message:
Break point at calls are currently set via IC. To change this, we
need to set debug break slots instead. We also need to distinguish
those debug break slots as calls to support step-in.
To implement this, we add a data field to debug break reloc info to
indicate non-call debug breaks or in case of call debug breaks, the
number of arguments. We can later use this to find the callee on the
evaluation stack in Debug::PrepareStep.
BUG=
Review URL: https://codereview.chromium.org/1233823002
Cr-Commit-Position: refs/heads/master@{#29630}
port 4b38c15817 (r29527).
original commit message:
We actually need round to zero truncation to implement the counterpart
of LDoubleToI in TurboFan, which tries to convert a double to an integer
as required for keyed load/store optimizations.
Drive-by-cleanup: Reduce some code duplication in the InstructionSelector
implementations.
BUG=
Review URL: https://codereview.chromium.org/1227923003
Cr-Commit-Position: refs/heads/master@{#29629}
port 737b8573f8 (r29539)
original commit message:
- Add a TurboFanIC class, derived from TurboFanCodeStub, that
automatically distinguishes between versions of the IC called from
optimized and unoptimized code.
- Add appropriate InterfaceDescriptors for both the versions of the
stub called from unoptimized and optimized code
- Change the MathFloor TF stub generator to output either the
for-optimized or for-unoptimized version based on the minor_key
parameter.
BUG=
Review URL: https://codereview.chromium.org/1235823002
Cr-Commit-Position: refs/heads/master@{#29628}
* Fix embarrassing bug in DeserializeValue, using a static buffer in
multithreaded code.
* Fix thread leak when Worker.terminate() is not called.
R=jarin@chromium.org
Review URL: https://codereview.chromium.org/1226143003
Cr-Commit-Position: refs/heads/master@{#29626}
The CL addes convenienve method that allows to write code like the following
v8::Local<v8::Object> local = v8::Local<v8::Object>::New(global, isolate);
in a more readable way:
v8::Local<v8::Object> local = global.Get(isolate);
There is already v8::Eternal::Get that does similar thing.
BUG=None
LOG=Y
Review URL: https://codereview.chromium.org/1237603003
Cr-Commit-Position: refs/heads/master@{#29616}
Port 2027335f1c
Original commit message:
Note that there are currently no objects that require a pre-allocated
properties backing store, all such slots are in-object properties from
the begining. Hence {unused + pre_allocated - inobject == 0} holds.
BUG=
Review URL: https://codereview.chromium.org/1226363003
Cr-Commit-Position: refs/heads/master@{#29610}
This also adds a script to the tools directory that allows to grep for
unused bailout reasons. For now the script needs to be run manually.
R=mvstanton@chromium.org
Review URL: https://codereview.chromium.org/1237623003
Cr-Commit-Position: refs/heads/master@{#29609}
- split relocation info for debug break slots for
- calls (with call arguments count as data)
- construct calls
- normal slots
- renamed DEBUG_BREAK into DEBUGGER_STATEMENT
- removed unused IC state for Debug stubs
R=ulan@chromium.org
BUG=v8:4269
LOG=N
Review URL: https://codereview.chromium.org/1232803002
Cr-Commit-Position: refs/heads/master@{#29603}
The JSContextSpecialization should only care about loads from the
context and stores to the context, where the context is either a
HeapConstant or the special context Parameter (and a context for the
outer most function is provided). This way we don't eagerly embed
arbitrary context constants for no benefit, but we still specialize the
loads and store which we actually care about.
R=mstarzinger@chromium.org
Review URL: https://codereview.chromium.org/1227963005
Cr-Commit-Position: refs/heads/master@{#29602}
Reason for revert:
[Sheriff] This changes lots of layout tests. See comment on CL.
Original issue's description:
> Enable loads and stores to global vars through property cell shortcuts installed into parent script context.
>
> Committed: https://crrev.com/cd61b047f1ab92c353a629556f9d3ad571ace1b1
> Cr-Commit-Position: refs/heads/master@{#29595}
TBR=verwaest@chromium.org,ishell@chromium.org
NOPRESUBMIT=true
NOTREECHECKS=true
NOTRY=true
Review URL: https://codereview.chromium.org/1236863002
Cr-Commit-Position: refs/heads/master@{#29599}
Up until now we were unable to have profiler ticks beyong 255, which
basically disabled OSR for moderately large functions.
BUG=chromium:508741
LOG=n
R=jarin@chromium.org
Review URL: https://codereview.chromium.org/1224173003
Cr-Commit-Position: refs/heads/master@{#29597}
Until now, TF-generated code stubs piggy-backed off of the builtin
context. Since generation of code stubs is lazy, stubs generated at
different times in different native contexts would contain embedded
pointers different builtin contexts, leading to cross-context references
and memory leaks.
After this CL, all TF-generated code stubs are generated inside a
internal thinned-out, native context that lives solely for the
purpose of hosting generated code stubs.
Review URL: https://codereview.chromium.org/1213203007
Cr-Commit-Position: refs/heads/master@{#29593}
This CL also adds hydrogen stubs for global loads and global stores, full-codegen and TurboFan now uses this machinery.
Review URL: https://codereview.chromium.org/1224793002
Cr-Commit-Position: refs/heads/master@{#29592}
Note that there are currently no objects that require a pre-allocated
properties backing store, all such slots are in-object properties from
the begining. Hence {unused + pre_allocated - inobject == 0} holds.
R=verwaest@chromium.org
Review URL: https://codereview.chromium.org/1226203011
Cr-Commit-Position: refs/heads/master@{#29590}
Some TurboFan instructions block the literal pool for their entire
duration. If a long enough sequence of these instructions is
encountered, the literal pool can be blocked until it goes out of range.
Patch from issue 1236603002 at patchset 1 (http://crrev.com/1236603002#ps1).
BUG=v8:4292
LOG=y
R=jarin@chromium.org
Review URL: https://codereview.chromium.org/1232343002
Cr-Commit-Position: refs/heads/master@{#29587}
Reduce Float64 comparison to Float32 when both inputs are conversions from
Float32.
Review URL: https://codereview.chromium.org/1235663002
Cr-Commit-Position: refs/heads/master@{#29586}
Port 8965b683ce
Original commit message:
Break point at calls are currently set via IC. To change this, we
need to set debug break slots instead. We also need to distinguish
those debug break slots as calls to support step-in.
To implement this, we add a data field to debug break reloc info to
indicate non-call debug breaks or in case of call debug breaks, the
number of arguments. We can later use this to find the callee on the
evaluation stack in Debug::PrepareStep.
R=yangguo@chromium.org, dstence@us.ibm.com, michael_dawson@ca.ibm.com
BUG=
Review URL: https://codereview.chromium.org/1231173002
Cr-Commit-Position: refs/heads/master@{#29582}