Commit Graph

29775 Commits

Author SHA1 Message Date
slan
86357d5235 [GN] Define USE_EABI_HARDFLOAT=1 when arm_float_abi=="hard".
Add this define to the config used for mksnapshot. This fixes a bug
where certain applications would fail at runtime on Chromecast.

BUG=592660
LOG=Y
Bug: internal b/27495984

Test: Formerly broken Cast apps load and run as expected.

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

Cr-Commit-Position: refs/heads/master@{#35183}
2016-04-01 00:41:36 +00:00
gdeepti
eb5fe0df64 [compiler] Add relocatable pointer constants for wasm memory references.
Add relocatable pointers for wasm memory references that need to be updated when wasm GrowMemory is used. Code generator changes to accept relocatable constants as immediates.

R=titzer@chromium.org, yangguo@chromium.org, bradnelson@chromium.org

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

Cr-Commit-Position: refs/heads/master@{#35182}
2016-04-01 00:41:35 +00:00
adamk
84492bb66b Ship --harmony-regexp-exec
There are still spec compliance fixes to be made, but this patch
turns the flag to shipping to make sure we get more canary coverage
and performance data from the bots.

BUG=v8:4602
LOG=y

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

Cr-Commit-Position: refs/heads/master@{#35181}
2016-04-01 00:39:25 +00:00
littledan
31e806ebd1 Revert of Remove RegExp.prototype.source getter compat workaround (patchset #2 id:20001 of https://codereview.chromium.org/1837843002/ )
Reason for revert:
TC39 decided that this compatibility fix should be standardized.

Original issue's description:
> Remove RegExp.prototype.source getter compat workaround
>
> The getter RegExp.prototype.source is specified in ES2015 to throw when
> called on a non-RegExp instance, such as RegExp.prototype. We had previously
> put in a compatibility workaround for all RegExp getters to make them
> throw on access specifically with RegExp.prototype as the receiver; however,
> we only have evidence that this is needed for properties other than source.
> This patch removes the compatibility workaround for get RegExp.prototype.source
> and gives it semantics precisely as per the ES2015 specification.
>
> R=adamk
> BUG=chromium:581577,v8:4827
> LOG=Y
>
> Committed: https://crrev.com/80803aa89e31839b8f73959776fa7e1923c6b461
> Cr-Commit-Position: refs/heads/master@{#35086}

R=adamk@chromium.org
# Not skipping CQ checks because original CL landed more than 1 days ago.
BUG=chromium:581577,v8:4827
LOG=Y

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

Cr-Commit-Position: refs/heads/master@{#35180}
2016-04-01 00:37:25 +00:00
jyan
e3fb2e7341 s390: Remove usages of Heap::NewSpaceStart and its external reference
Port f2a585935f

Original commit message:
    Replace the uses with proper page flag lookups.

R=mlippautz@chromium.org, joransiu@ca.ibm.com, mbrandy@us.ibm.com, michael_dawson@ca.ibm.com
BUG=chromium:581412
LOG=N
TEST=mjsunit/allocation-site-info

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

Cr-Commit-Position: refs/heads/master@{#35179}
2016-03-31 19:57:34 +00:00
mtrofin
da97b701ad [turbofan] Frame deconstruction self-validation.
BUG=

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

Cr-Commit-Position: refs/heads/master@{#35178}
2016-03-31 18:42:46 +00:00
jyan
3cb6a22a1e S390: [turbofan] Frame elision for code stubs.
Port 53d51c52f3

Original commit message:
    Removed Frame::needs_frame and the function-wide logic using it in
    favor of FrameAccessState::has_frame, which can be set on a more
    granular level, and driving it block by block.

R=mtrofin@chromium.org, joransiu@ca.ibm.com, mbrandy@us.ibm.com, michael_dawson@ca.ibm.com, rmcilroy@chromium.org
BUG=v8:4533
LOG=N

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

Cr-Commit-Position: refs/heads/master@{#35177}
2016-03-31 18:40:34 +00:00
ahaas
ac7f0e2b61 [wasm] Fixed float-to-int conversion tests.
*) For all tests the input validation was incorrect, i.e. some values
were considered invalid although they were valid. The problem was that
values which are outside int range can get in range through truncation.

*) Removed an assertion in the x64 code generation of
TruncateFloat64ToUint32 which trapped on negative inputs.

*) Introduced a new TF operator TruncateFloat32ToUint32 which does
the same as ChangeFloat32ToUint32 but does not trap on negative inputs.

R=titzer@chromium.org

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

Cr-Commit-Position: refs/heads/master@{#35176}
2016-03-31 18:38:36 +00:00
mtrofin
2230018504 Undoing unintended chant to code-stub-assembler introduced by
53d51c52f3 (frame elision).

Turns out it was the cause of the regression in the referenced bug.

BUG=599421
LOG=N

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

Cr-Commit-Position: refs/heads/master@{#35175}
2016-03-31 17:24:29 +00:00
ulan
6a62857388 Change store buffer overflow check to not rely on the store buffer being (2*Size) aligned.
This reduces the reserved virtual memory size needed for the store buffer.

BUG=chromium:578883
LOG=NO

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

Cr-Commit-Position: refs/heads/master@{#35174}
2016-03-31 17:18:44 +00:00
ahaas
bd4fb28ecd [wasm] Int64Lowering of Word64Ror and Word64Rol.
R=titzer@chromium.org

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

Cr-Commit-Position: refs/heads/master@{#35173}
2016-03-31 17:05:43 +00:00
mbrandy
5a09c0c0db PPC: Remove usages of Heap::NewSpaceStart and its external reference
Port f2a585935f

Original commit message:
    Replace the uses with proper page flag lookups.

R=mlippautz@chromium.org, joransiu@ca.ibm.com, jyan@ca.ibm.com, michael_dawson@ca.ibm.com
BUG=chromium:581412
LOG=N
TEST=mjsunit/allocation-site-info

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

Cr-Commit-Position: refs/heads/master@{#35172}
2016-03-31 16:46:43 +00:00
hlopko
da934aba4a Fix comment for GlobalHandles::MarkIndependent
BUG=
LOG=no

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

Cr-Commit-Position: refs/heads/master@{#35171}
2016-03-31 15:59:43 +00:00
jbriance
0b557da25f [arm/Linux] Don't rely on KUSER_HELPERS feature
ARM specific CONFIG_KUSER_HELPERS kernel feature for Linux can be disabled,
and in this case, we shouldn't crash. Use a __sync_synchronize() call
instead for Linux platforms.

BUG=chromium:599051
LOG=Y

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

Cr-Commit-Position: refs/heads/master@{#35170}
2016-03-31 15:56:01 +00:00
mlippautz
9da14dbeda [heap] Tracer: Fix accounting for external epilogue
R=hpayer@chromium.org
LOG=N
BUG=

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

Cr-Commit-Position: refs/heads/master@{#35169}
2016-03-31 15:37:46 +00:00
mlippautz
c80f2bf80c [tools] Beef up GC eval scripts
* Add csv output mode for spreadsheet pasting
* Add option to leave out top-level categories
* Deal with unknown categories

R=hpayer@chromium.org
LOG=N
BUG=
NOTRY=true

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

Cr-Commit-Position: refs/heads/master@{#35168}
2016-03-31 15:09:00 +00:00
jyan
b295462e84 S390: [wasm] Int64Lowering of Int64Mul.
port 40bdbef975

 Original commit message:
     Int64Mul is lowered to a new turbofan operator, Int32MulPair. The new
     operator takes 4 inputs an generates 2 outputs. The inputs are the low
     word of the left input, high word of the left input, the low word of the
     right input, and high word of the right input. The ouputs are the low
     and high word of the result of the multiplication.

R=titzer@chromium.org, joransiu@ca.ibm.com, michael_dawson@ca.ibm.com, mbrandy@us.ibm.com
BUG=

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

Cr-Commit-Position: refs/heads/master@{#35167}
2016-03-31 14:24:22 +00:00
mbrandy
9e1f2c5ee2 PPC: [turbofan] Frame elision for code stubs.
Port 53d51c52f3

Includes fixes required for embedded constant pools.

Original commit message:
    Removed Frame::needs_frame and the function-wide logic using it in
    favor of FrameAccessState::has_frame, which can be set on a more
    granular level, and driving it block by block.

R=mtrofin@chromium.org, joransiu@ca.ibm.com, jyan@ca.ibm.com, michael_dawson@ca.ibm.com, rmcilroy@chromium.org
BUG=v8:4533
LOG=N

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

Cr-Commit-Position: refs/heads/master@{#35166}
2016-03-31 14:00:23 +00:00
jochen
719dc19d78 Also don't sort the snapshot files
R=machenbach@chromium.org
BUG=

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

Cr-Commit-Position: refs/heads/master@{#35165}
2016-03-31 13:58:30 +00:00
hlopko
5951a58983 Turn scavenge_reclaim_unmodified_objects on by default
Embedders that rely on unmodified wrappers to survive should pass the command-line flag --noscavenge_reclaim_unmodified_objects

BUG=4880
LOG=yes

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

Cr-Commit-Position: refs/heads/master@{#35164}
2016-03-31 13:51:12 +00:00
mythria
e6b6e55453 [Interpreter] Changes GenerateDoubleToObject to push and pop rsi value.
In the earlier implementation of GenerateDoubleToObject the context
is loaded from the parent's frame. rsi is clobbered because it is used
to store kHoleNan constnat. It is not always safe to peek at
the parents frame. Bytecode handlers have TypedFrame and the type of
frame is stored at FP + 1. GenerateDoubleToObject expects context
to be store at that place. In the current implementation rsi is pushed
onto the stack and is popped when exiting this function.

BUG=v8:4280,chromium:597565
LOG=N

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

Cr-Commit-Position: refs/heads/master@{#35163}
2016-03-31 13:45:48 +00:00
hlopko
289f382497 Introduce EmbedderHeapTracer
BUG=468240
LOG=no

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

Cr-Commit-Position: refs/heads/master@{#35162}
2016-03-31 13:38:29 +00:00
oth
8cf73ae1e9 [interpreter] Adds test for tracing.
Fixes a stale DCHECK and a memory leak in tracing output.

LOG=N
BUG=v8:4280
TBR=rmcilroy@chromium.org

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

Cr-Commit-Position: refs/heads/master@{#35161}
2016-03-31 11:58:06 +00:00
mlippautz
21f1dfe916 [heap] Remove store buffer top from roots
Change x64 to use the external references like all other platforms.

BUG=chromium:581076
LOG=N

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

Cr-Commit-Position: refs/heads/master@{#35160}
2016-03-31 11:16:26 +00:00
jochen
731e53c726 Don't sort the input for the postmortem script
R=yangguo@chromium.org
BUG=

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

Cr-Commit-Position: refs/heads/master@{#35159}
2016-03-31 11:12:35 +00:00
yangguo
18c80bc879 [d8] remove utility context.
We only use it to store the Stringify function to format
REPL output. This is overkill and introduces issues with
security tokens.

R=jochen@chromium.org
BUG=

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

Cr-Commit-Position: refs/heads/master@{#35158}
2016-03-31 10:18:25 +00:00
cbruni
35fa419a2f [printing] Add COW identifier to elements kind
BUG=

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

Cr-Commit-Position: refs/heads/master@{#35157}
2016-03-31 10:13:02 +00:00
titzer
08e0ea38cd [wasm] Fix and enable more tests.
R=ahaas@chromium.org, bradnelson@chromium.org
BUG=

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

Cr-Commit-Position: refs/heads/master@{#35156}
2016-03-31 09:20:21 +00:00
hpayer
454ab5dd88 [heap] Remove unused no marking scope.
BUG=

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

Cr-Commit-Position: refs/heads/master@{#35155}
2016-03-31 09:16:45 +00:00
bmeurer
833618d91f [full-codegen] Reload context register after intrinsic call.
Previously all code stubs (i.e. both platform and Crankshaft code stubs)
preserved the context register for full-codegen (neither Ignition, nor
TurboFan nor Crankshaft require this or would benefit from this), but
the newly introduced TurboFanCodeStubs no longer do this and there's no
need to, so we have to make sure in full-codegen that we restore the
context register after intrinsic calls, which potentially call
TurboFanCodeStubs.

Drive-by-fix: VisitThisFunction can be made platform independent.

R=verwaest@chromium.org

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

Cr-Commit-Position: refs/heads/master@{#35154}
2016-03-31 08:38:41 +00:00
mlippautz
f2a585935f Remove usages of Heap::NewSpaceStart and its external reference
Replace the uses with proper page flag lookups.

BUG=chromium:581412
LOG=N
TEST=mjsunit/allocation-site-info

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

Cr-Commit-Position: refs/heads/master@{#35153}
2016-03-31 07:55:26 +00:00
verwaest
bc8f9a78f0 Add initial code-stub version of Object.prototype.hasOwnProperty
It for now only deals with fast-mode smi and object arrays with smi
keys and internalized strings; and fast-mode named properties with an internalized key or symbol.

BUG=v8:2472
LOG=n

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

Cr-Commit-Position: refs/heads/master@{#35152}
2016-03-31 07:55:25 +00:00
machenbach
a0aac3cb1d [test] Fix deterministic test shards.
Test case objects were sorted without key function, resulting
in random sort order. On sharded builds, the shards are
determined by the sort order and rely on a deterministic
sorting. This led to random cctest and unittest cases being
dropped or executed twice on sharded testers.

TBR=jkummerow@chromium.org, hablich@chromium.org

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

Cr-Commit-Position: refs/heads/master@{#35151}
2016-03-31 07:38:22 +00:00
jochen
799eea1714 gn format the BUILD.gn file
Also protect builtin files with # NOSORT as the order is important here.

BUG=
R=machenbach@chromium.org
LOG=n

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

Cr-Commit-Position: refs/heads/master@{#35150}
2016-03-31 07:32:58 +00:00
machenbach
7a4e13b89b [test] Skip more cpu profiler tests on windows.
BUG=v8:2999,v8:4751
LOG=n
NOTRY=true
TBR=hablich@chromium.org

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

Cr-Commit-Position: refs/heads/master@{#35149}
2016-03-31 07:24:54 +00:00
machenbach
d298743460 Raise minimum Mac OS version to 10.7
BUG=v8:4847
LOG=y

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

Cr-Commit-Position: refs/heads/master@{#35148}
2016-03-31 07:08:45 +00:00
mattloring
607143d460 Gracefully handle unloaded scripts
If a script is unloaded between the collection of an allocation and the
tranlation of an allocation profile, the profiler will segfault. With
this change, we report unloaded scripts as having no line number,column
number, or name.

R=ofrobots@google.com
BUG=

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

Cr-Commit-Position: refs/heads/master@{#35147}
2016-03-31 06:36:33 +00:00
zhengxing.li
25fe0e01ef X87: [wasm] Int64Lowering of Int64Mul on ia32 and arm.
port 40bdbef975 (r35131)

  original commit message:
  Int64Mul is lowered to a new turbofan operator, Int32MulPair. The new
  operator takes 4 inputs an generates 2 outputs. The inputs are the low
  word of the left input, high word of the left input, the low word of the
  right input, and high word of the right input. The ouputs are the low
  and high word of the result of the multiplication.

BUG=

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

Cr-Commit-Position: refs/heads/master@{#35146}
2016-03-31 06:18:39 +00:00
yangguo
297daf6c37 [debugger] allow debug-evaluate to change stack and context values.
R=bmeurer@chromium.org, cbruni@chromium.org, ulan@chromium.org
BUG=chromium:124206,chromium:569811
LOG=N

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

Cr-Commit-Position: refs/heads/master@{#35145}
2016-03-31 06:00:21 +00:00
v8-autoroll
046414169a Update V8 DEPS.
Rolling v8/third_party/android_tools to adfd31794011488cd0fc716b53558b2d8a67af8b

Rolling v8/third_party/icu to 628d39f5b088236d2021bf4388549fd92673ff1a

TBR=machenbach@chromium.org,vogelheim@chromium.org,hablich@chromium.org

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

Cr-Commit-Position: refs/heads/master@{#35144}
2016-03-31 03:26:43 +00:00
mbrandy
20ff44f07f PPC: [wasm] Int64Lowering of Int64Mul.
Port 40bdbef975

Original commit message:
    Int64Mul is lowered to a new turbofan operator, Int32MulPair. The new
    operator takes 4 inputs an generates 2 outputs. The inputs are the low
    word of the left input, high word of the left input, the low word of the
    right input, and high word of the right input. The ouputs are the low
    and high word of the result of the multiplication.

R=ahaas@chromium.org, joransiu@ca.ibm.com, jyan@ca.ibm.com, michael_dawson@ca.ibm.com
BUG=

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

Cr-Commit-Position: refs/heads/master@{#35143}
2016-03-30 22:34:24 +00:00
joransiu
555c46113f S390: Implement RotRight64
Properly implement Rotate Right sequence for S390, to use the 64-bit
RLLG instruction.

R=jyan@ca.ibm.com,michael_dawson@ca.ibm.com,mbrandy@us.ibm.com
BUG=

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

Cr-Commit-Position: refs/heads/master@{#35142}
2016-03-30 20:36:32 +00:00
Miran.Karic
a3f941aed4 MIPS64: Replace JR/JALR with JIC/JIALC for r6.
Port of changes that replace JR and JALR instructions with JIC and JIALC
for mips64r6. Macroassembler Jump and Call functions now use JIC and
JIALC if branch delay slot is not used. Code patching is adjusted to
work with new changes. Jr and Jalr macroassembler functions are removed.
Other changes where mips32r6 uses jr/jalr are not done because mips64r6
uses j/jal instructions.

BUG=

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

Cr-Commit-Position: refs/heads/master@{#35141}
2016-03-30 16:44:46 +00:00
ahaas
f954934d62 [wasm] Refactoring pair-shift code in the instruction selector of arm and ia32.
R=titzer@chromium.org

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

Cr-Commit-Position: refs/heads/master@{#35140}
2016-03-30 14:26:17 +00:00
mtrofin
53d51c52f3 [turbofan] Frame elision for code stubs.
Removed Frame::needs_frame and the function-wide logic using it in
favor of FrameAccessState::has_frame, which can be set on a more
granular level, and driving it block by block.

BUG= v8:4533
LOG=N

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

Cr-Commit-Position: refs/heads/master@{#35139}
2016-03-30 14:08:28 +00:00
cbruni
a549d4a7aa [keys] adding fast-path for dict-mode objects with own keys only
BUG=

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

Cr-Commit-Position: refs/heads/master@{#35138}
2016-03-30 13:25:31 +00:00
bmeurer
2c653a5dee [stubs] Migrate ToLengthStub to TurboFan.
We now have everything in place to fully implement ToLengthStub as
TurboFanCodeStub without any runtime fallback (modulo allocation failure
of course).

R=jarin@chromium.org

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

Cr-Commit-Position: refs/heads/master@{#35137}
2016-03-30 12:51:10 +00:00
titzer
d167c3743d [wasm] Mask shift counts on architectures that don't implicitly mask.
R=ahaas@chromium.org,bradnelson@chromium.org
BUG=

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

Cr-Commit-Position: refs/heads/master@{#35136}
2016-03-30 12:40:22 +00:00
bmeurer
8d20f2fe37 [builtins] Make Math.ceil, Math.trunc and Math.round optimizable.
Migrate Math.ceil, Math.round and Math.trunc to TurboFan code stubs,
similar to what we did with Math.floor, and make these builtins properly
optimizable in TurboFan via appropriate simplified operators NumberCeil,
NumberRound and NumberTrunc, which are intended to be reusable for
ToInteger and ToLength optimizations that will be done in a followup CL.

Also allows us to kill the funky %RoundNumber runtime function, which
was quite heavy.

Improve test coverage for Math.ceil and Math.trunc a lot, especially
making sure that we also properly trigger the TurboFan builtin reducer
case.

R=jarin@chromium.org
BUG=v8:4059
LOG=n

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

Cr-Commit-Position: refs/heads/master@{#35135}
2016-03-30 11:57:20 +00:00
titzer
257bdfe543 [wasm] Fix asm.js semantics for divide by zero in WASM translation.
R=ahaas@chromium.org,bradnelson@chromium.org
BUG=

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

Cr-Commit-Position: refs/heads/master@{#35134}
2016-03-30 11:37:44 +00:00