port b4275a70eb (r29378)
original commit message:
This change makes possible to save and restore the FP registers
in the Prologue and Return parts for the CallAddress kind functions.
BUG=
Review URL: https://codereview.chromium.org/1214573006
Cr-Commit-Position: refs/heads/master@{#29432}
Conditionally including Array and TypedArray methods seems to cause
a slowdown in V8 context creation, possibly due to the new code added.
BUG=chromium:504629
R=adamk@chromium.org
LOG=Y
Review URL: https://codereview.chromium.org/1215863003
Cr-Commit-Position: refs/heads/master@{#29430}
This was added in https://chromium.googlesource.com/v8/v8/+/4a709dd65,
but the only check for it that remained in the final patch is inside
a DCHECK. It appears that the approach for checking use of class names
in methods evolved quite a bit over the review of the original patch.
Review URL: https://codereview.chromium.org/1219993002
Cr-Commit-Position: refs/heads/master@{#29428}
This is more consistent with the DOM API, and is clearer w.r.t. which values
are available in the lexical environment of the Worker.
BUG=chromium:497295
R=jarin@chromium.org
LOG=n
Review URL: https://codereview.chromium.org/1218553004
Cr-Commit-Position: refs/heads/master@{#29426}
Disabling rsqrt and recip for mips32r1 in assembler, disassembler and simulator
Review URL: https://codereview.chromium.org/1221663006
Cr-Commit-Position: refs/heads/master@{#29425}
Checking for native context is faster than checking for global object. Additionally it speeds up the case were it actually is the native context, while not slowing down the alternative case. The bootstrapper only needs to access the native context from the native context, so this avoids the expensive fallback.
BUG=
Review URL: https://codereview.chromium.org/1214903017
Cr-Commit-Position: refs/heads/master@{#29423}
Port 7015fd2053
Original commit message:
Up until now the context register was listed explicitly in each stub's
CallInterfaceDescriptor. This was problematic, because it was listed
first in the list of register parameters--which is fine for Crankshaft,
which is more or less built to handle the context as the first
parameter-- but not ideal for TurboFan, which adds the context at
the end of all function parameters. Now the context register is no
longer in the register list and can be handled appropriately by both
compilers. Specifically, this allows the FunctionType specified for
each CallInterfaceDescriptor to exactly match the parameter register
list.
R=danno@chromium.org, dstence@us.ibm.com, michael_dawson@ca.ibm.com
BUG=
Review URL: https://codereview.chromium.org/1218463004
Cr-Commit-Position: refs/heads/master@{#29421}
This makes sure that all pointer fields in an entry in the optimized
code map are considered weak, not just the code object. If just one
field of an entry dies, then the whole entry dies.
R=hpayer@chromium.org
Review URL: https://codereview.chromium.org/1217813013
Cr-Commit-Position: refs/heads/master@{#29417}
This extends the existing support for --noflush-optimized-code-cache
mechanism to the newly added context-independent code entry in the
optimized code map. Note that this machanism is still off by default.
R=hpayer@chromium.org
Review URL: https://codereview.chromium.org/1220883002
Cr-Commit-Position: refs/heads/master@{#29415}
This change changes bootstrapping semantics for intercepted global objects. Unlike before, we'll now also call into the interceptor during bootstrapping. This affects properties loaded from within the runtime, such as global.Array and global.Symbol. The embedder will need to make sure that those values are the expected values during bootstrapping.
BUG=chromium:505998
LOG=n
Review URL: https://codereview.chromium.org/1220813005
Cr-Commit-Position: refs/heads/master@{#29414}
port 7a63bf77eb (r29358).
original commit message:
This makes new.target work in [[Call]] and [[Construct]] of ordinary
functions.
We achieve this by introducing a new construct stub for functions that
uses the new.target variable. The construct stub pushes the original
constructor just above the receiver in the construct frame.
BUG=
Review URL: https://codereview.chromium.org/1217083004
Cr-Commit-Position: refs/heads/master@{#29413}
port 876ae42598 (r29292).
original commit message:
The stack layout was different for different ports.
BUG=
Review URL: https://codereview.chromium.org/1219823002
Cr-Commit-Position: refs/heads/master@{#29412}
port 9e7af9efc5 (r29280).
original commit message:
It's useful for the megamorphic keyed store case to not require a
vector and slot as input. Analogous to the load case, we have a dummy
one-ic-slot vector to aid. Since the only kind of MISS is for
megamorphic cache stub failures, we don't need the real vector.
The reason is that megamorphic cache stub failures don't result in any
change to the type feedback vector state.
BUG=
Review URL: https://codereview.chromium.org/1212653011
Cr-Commit-Position: refs/heads/master@{#29410}
port c1a4f7477f (r29281).
original commit message:
The idea is that TurboFan can use this information for more intelligent
inlining.
BUG=
Review URL: https://codereview.chromium.org/1213723005
Cr-Commit-Position: refs/heads/master@{#29409}
port a58ba8d801 (r29279).
original commit message:
This introduces some initial building blocks for calling out to
C/C++ functions directly from TurboFan generated code objects.
BUG=
Review URL: https://codereview.chromium.org/1214903007
Cr-Commit-Position: refs/heads/master@{#29408}
This CL fixes the following situations:
1, Operands are -0.0 or 0.0. it always return right value.
1, Operands contains NaN. it always return right value.
BUG=
Review URL: https://codereview.chromium.org/1214893004
Cr-Commit-Position: refs/heads/master@{#29407}
port c019d7f498 (r29248).
original commit message:
Use big-boy Types to annotate interface descriptor parameters
- Thread Type::FunctionType through stubs and the TF pipeline.
- Augment Typer to decorate parameter nodes with types from
a Type::FunctionType associated with interface descriptors.
- Factor interface descriptors into platform-specific and
platform-independent components so that all descriptors share
a common Type::FunctionType for all platforms.
BUG=
Review URL: https://codereview.chromium.org/1210463002
Cr-Commit-Position: refs/heads/master@{#29406}
Up until now the context register was listed explicitly in each stub's
CallInterfaceDescriptor. This was problematic, because it was listed
first in the list of register parameters--which is fine for Crankshaft,
which is more or less built to handle the context as the first
parameter-- but not ideal for TurboFan, which adds the context at
the end of all function parameters. Now the context register is no
longer in the register list and can be handled appropriately by both
compilers. Specifically, this allows the FunctionType specified for
each CallInterfaceDescriptor to exactly match the parameter register
list.
Review URL: https://codereview.chromium.org/1211333003
Cr-Commit-Position: refs/heads/master@{#29402}
This operator< overload is rather dangerous for handles. And we don't
actually need a std::set in the chunk builder, since duplicates are
automatically eliminated later when the code dependencies are committed.
R=jarin@chromium.org
Review URL: https://codereview.chromium.org/1214573004
Cr-Commit-Position: refs/heads/master@{#29401}
We now consistently ignore native and extension scripts for debugging. Only native scripts and extension scripts can disallow lazy compilation. So we can make sure that break points are only set to code that are compiled with debug break slots.
R=mvstanton@chromium.org
Review URL: https://codereview.chromium.org/1216193002
Cr-Commit-Position: refs/heads/master@{#29400}
port 8196c28a94 (r29238).
original commit message:
JSConstructStub for subclass constructors instead locates new.target in
a known location on the stack.
BUG=
Review URL: https://codereview.chromium.org/1207613003
Cr-Commit-Position: refs/heads/master@{#29398}
port 882055ff6a (r29082).
The original CL covers part of X87 port. This CL addes the missing changes.
original commit message:
- fix truthfulness of comments
- use InitializeFieldsWithFiller more consistently
- use unsigned comparisons for pointers
No change in functionality intended.
Bonus: improve JavaScriptFrame::Print() for an enhanced debugging experience:
BUG=
Review URL: https://codereview.chromium.org/1210153007
Cr-Commit-Position: refs/heads/master@{#29397}
The enumerable expression in a for-in/of loop is supposed to have a TDZ for any
lexically bound names in that loop (there can be more than one with destructuring).
This patch accomplishes this with an almost-correct desugaring. The only thing missing
is proper debugger support (the let declarations added by the desugaring, while invisible
to code due to shadowing, are visible to the debugger).
BUG=v8:4210
LOG=n
Review URL: https://codereview.chromium.org/1218543003
Cr-Commit-Position: refs/heads/master@{#29396}
v8::Internal::List will DCHECK when indexing out of the array, even if just to
get the address, and the value is never used. So this construct will fail:
memcpy(p, &data[0], length);
When data is empty and length is 0.
BUG=chromium:505778
R=mstarzinger@chromium.org
LOG=n
Review URL: https://codereview.chromium.org/1216853003
Cr-Commit-Position: refs/heads/master@{#29388}
This makes sure that both, the shared function info and it's optimized
code map get revisited when the code map is evicted from the flusher.
R=hpayer@chromium.org
TEST=mjsunit/debug-set-variable-value
Review URL: https://codereview.chromium.org/14703009
Cr-Commit-Position: refs/heads/master@{#29387}
Revert "Revert relanded strong property access CL"
Regression issues should be solved. Initial patchset is the original, subsequent patchsets are the fixing modifications.
This reverts commit 4ac7be5656.
BUG=v8:3956
LOG=N
Review URL: https://codereview.chromium.org/1199983002
Cr-Commit-Position: refs/heads/master@{#29384}