Commit Graph

52504 Commits

Author SHA1 Message Date
Michael Starzinger
3fdc277323 [wasm] Restrict exception section according to spec.
The placement of the exceptipon section is by now restricted to be in
between the Global and the Import section. This changes our validation
to check this stricter requirement now.

R=clemensh@chromium.org
TEST=unittests/WasmModuleVerifyTest
BUG=v8:8091

Change-Id: Ib3ea625fd4df93bffda47ced09e6969159f7ac70
Reviewed-on: https://chromium-review.googlesource.com/c/1356504
Reviewed-by: Clemens Hammacher <clemensh@chromium.org>
Commit-Queue: Michael Starzinger <mstarzinger@chromium.org>
Cr-Commit-Position: refs/heads/master@{#57962}
2018-11-30 11:22:07 +00:00
Predrag Rudic
ad9835e5d9 MIPS[64]: Fix failing atomic64-stress test
64-bit implementations of ExtractBits and InsertBits were using 32-bit
instructions. Masking when representation of instruction is 64 is now
correct.
Also added optimization for 32-bit InsertBits.

Change-Id: I3d5117835daa67708e544d01d1d9058dcc0cc64e
Reviewed-on: https://chromium-review.googlesource.com/c/1355141
Reviewed-by: Sreten Kovacevic <skovacevic@wavecomp.com>
Commit-Queue: Sreten Kovacevic <skovacevic@wavecomp.com>
Cr-Commit-Position: refs/heads/master@{#57961}
2018-11-30 11:20:47 +00:00
Clemens Hammacher
d3e4064138 [wasm] Fix linking issues in component builds
Building on linux x64 with "is_component_build = true" currently fails
with linker errors (undefined references). This CL fixes that.

R=ahaas@chromium.org
TBR=mseaborn@chromium.org,mark@chromium.org

Bug: v8:8532
Change-Id: I6b32c00bd974a22268ad1f161ce06a9ebe47c805
Reviewed-on: https://chromium-review.googlesource.com/c/1356505
Reviewed-by: Clemens Hammacher <clemensh@chromium.org>
Reviewed-by: Andreas Haas <ahaas@chromium.org>
Commit-Queue: Clemens Hammacher <clemensh@chromium.org>
Cr-Commit-Position: refs/heads/master@{#57960}
2018-11-30 10:58:43 +00:00
Camillo Bruni
ff2d913dee [cctest] Harden test-log/LogAll
Make sure that the testAddFn is always optimized.

Bug: v8:8220
Change-Id: I38543dc4cf99df6a379c9474ce275af2c9ef015d
Reviewed-on: https://chromium-review.googlesource.com/c/1355401
Commit-Queue: Camillo Bruni <cbruni@chromium.org>
Reviewed-by: Maya Lekova <mslekova@chromium.org>
Cr-Commit-Position: refs/heads/master@{#57959}
2018-11-30 10:57:38 +00:00
Clemens Hammacher
c8b5645c83 [wasm][test] Use Vector in func body decoder unittests
Minor refactoring.

R=titzer@chromium.org

Bug: v8:8238
Change-Id: Ibf3388cf8fc4a8d618e2e0da53209e29e753058d
Reviewed-on: https://chromium-review.googlesource.com/c/1356501
Reviewed-by: Ben Titzer <titzer@chromium.org>
Commit-Queue: Clemens Hammacher <clemensh@chromium.org>
Cr-Commit-Position: refs/heads/master@{#57958}
2018-11-30 10:41:48 +00:00
Toon Verwaest
c75ca5894f [parser] Move strict formal parameter classification
Move from ParseAndClassifyIdentifier to places where we either know that what
we're parsing are parameters, or where they could become (async) arrow formals.

Change-Id: Ic69bb586ed29ba9ac7b4dbef5d11a2e1954e7332
Reviewed-on: https://chromium-review.googlesource.com/c/1356503
Reviewed-by: Camillo Bruni <cbruni@chromium.org>
Commit-Queue: Toon Verwaest <verwaest@chromium.org>
Cr-Commit-Position: refs/heads/master@{#57957}
2018-11-30 10:00:26 +00:00
Peter Marshall
ff0cf00c72 Revert "[runtime] Reduce spread/apply call max arguments"
This reverts commit 4e3a17d040.

Reason for revert: Web compact issues, see crbug.com/910252

Original change's description:
> [runtime] Reduce spread/apply call max arguments
> 
> Bug: chromium:906043
> Change-Id: I308b29af0644c318d73926b27e65a94913c760c7
> Reviewed-on: https://chromium-review.googlesource.com/c/1346115
> Commit-Queue: Peter Marshall <petermarshall@chromium.org>
> Reviewed-by: Jaroslav Sevcik <jarin@chromium.org>
> Reviewed-by: Benedikt Meurer <bmeurer@chromium.org>
> Reviewed-by: Jakob Gruber <jgruber@chromium.org>
> Cr-Commit-Position: refs/heads/master@{#57731}

TBR=jarin@chromium.org,jgruber@chromium.org,petermarshall@chromium.org,bmeurer@chromium.org

# Not skipping CQ checks because original CL landed > 1 day ago.

Bug: chromium:906043
Change-Id: I240c1b55c10fd3e108e3c49f93ce1d9ca9c61780
Reviewed-on: https://chromium-review.googlesource.com/c/1356502
Reviewed-by: Peter Marshall <petermarshall@chromium.org>
Commit-Queue: Peter Marshall <petermarshall@chromium.org>
Cr-Commit-Position: refs/heads/master@{#57956}
2018-11-30 09:54:47 +00:00
Tao Pan
621f9da85b [snapshot] Fix border judgement of PcIsOffHeap()
In the case of using start and size to manage range, the range is start
~ start + size - 1, start + size is out of the range.
The template function IsInRange(T value, U lower_limit, U higher_limit)
judge whether value is in the range lower_limit ~ higher_limit.
IsInRange(pc, start, start + isolate->embedded_blob_size()) misjudge
the case pc == start + isolate->embedded_blob_size()

Signed-off-by: Tao Pan <tao.pan@intel.com>
Change-Id: Iad172454bacb27a1328bbdda5863d28c9853a6db

Bug: v8:8530
Change-Id: Iad172454bacb27a1328bbdda5863d28c9853a6db
Reviewed-on: https://chromium-review.googlesource.com/c/1355633
Reviewed-by: Jakob Gruber <jgruber@chromium.org>
Commit-Queue: Tao Pan <tao.pan@intel.com>
Cr-Commit-Position: refs/heads/master@{#57955}
2018-11-30 08:04:29 +00:00
v8-ci-autoroll-builder
30604a00dd Update V8 DEPS.
Rolling v8/build: b7e2add..e066ef7

Rolling v8/third_party/catapult: https://chromium.googlesource.com/catapult/+log/eee0f6a..63d69d7

Rolling v8/third_party/depot_tools: 44d4b29..dd53081

Rolling v8/tools/clang: 8a671fe..5422fce

Rolling v8/tools/luci-go:infra/tools/luci/isolate/${platform}: https://chrome-infra-packages.appspot.com/infra/tools/luci/isolate/${platform}/+log/git_rev..git_rev

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

Change-Id: I4c5055d0a46a6ab5b0f4f30a70520d172ca77bd3
Reviewed-on: https://chromium-review.googlesource.com/c/1355632
Reviewed-by: v8-ci-autoroll-builder <v8-ci-autoroll-builder@chops-service-accounts.iam.gserviceaccount.com>
Commit-Queue: v8-ci-autoroll-builder <v8-ci-autoroll-builder@chops-service-accounts.iam.gserviceaccount.com>
Cr-Commit-Position: refs/heads/master@{#57954}
2018-11-30 03:30:44 +00:00
Aseem Garg
5b55ec2ac0 Reland "[wasm] Add I64AtomicWait implementation"
This is a reland of 9436e8a817

This CL simplifies the wasm/futex.js test so that it doesn't push the
limits of d8.

Original change's description:
> [wasm] Add I64AtomicWait implementation
>
> Bug=v8:8075
> R=adamk@chromium.org,binji@chromium.org
>
> Change-Id: I11ef5daccd043123b23e60c93ee0df79cabe9ccd
> Reviewed-on: https://chromium-review.googlesource.com/c/1342948
> Reviewed-by: Adam Klein <adamk@chromium.org>
> Reviewed-by: Ben Smith <binji@chromium.org>
> Commit-Queue: Aseem Garg <aseemgarg@chromium.org>
> Cr-Commit-Position: refs/heads/master@{#57917}

Change-Id: Ifd26f1ecdb9fe24a1896162bb4d4285f9188a9ba
Reviewed-on: https://chromium-review.googlesource.com/c/1351304
Commit-Queue: Aseem Garg <aseemgarg@chromium.org>
Reviewed-by: Ben Smith <binji@chromium.org>
Reviewed-by: Adam Klein <adamk@chromium.org>
Cr-Commit-Position: refs/heads/master@{#57953}
2018-11-30 02:24:04 +00:00
Jakob Kummerow
172ab5dcc9 [ubsan] Port BigInt to the new design
Bug: v8:3770
Change-Id: I6ad84a663926fffc9e1acc590c13780c39461274
Reviewed-on: https://chromium-review.googlesource.com/c/1351248
Commit-Queue: Jakob Kummerow <jkummerow@chromium.org>
Reviewed-by: Hannes Payer <hpayer@chromium.org>
Reviewed-by: Adam Klein <adamk@chromium.org>
Cr-Commit-Position: refs/heads/master@{#57952}
2018-11-30 00:52:34 +00:00
Ben Smith
cb62c6ede9 [wasm] Parse DataCount section for bulk-memory
The bulk-memory proposal adds a new DataCount section that declares the
number of data segments that are expected to be seen in the Data
section. This is similar to the way the number of functions is split
between the Function and Code sections.

The DataCount section occurs before the Code section, so we can do
single-pass validation of the new `memory.init` and `memory.drop`
instructions, which have data segment indices as immediates.

Bug: v8:7747
Change-Id: Ibc5a7ee9336dbc5d0fd667572c42cb065c048e00
Reviewed-on: https://chromium-review.googlesource.com/c/1352792
Commit-Queue: Ben Smith <binji@chromium.org>
Reviewed-by: Clemens Hammacher <clemensh@chromium.org>
Cr-Commit-Position: refs/heads/master@{#57951}
2018-11-29 21:31:07 +00:00
Camillo Bruni
cac6b0371c [log] Expose and use full Map::MapPrint with --trace-maps
This should reduce the likelyhood of getting indistinguishable map log
events with --trace-maps.

Bug: v8:8524
Change-Id: I5dad7a026ec9384960177298afadc1f9fa710eda
Reviewed-on: https://chromium-review.googlesource.com/c/1354890
Reviewed-by: Igor Sheludko <ishell@chromium.org>
Commit-Queue: Camillo Bruni <cbruni@chromium.org>
Cr-Commit-Position: refs/heads/master@{#57950}
2018-11-29 18:03:54 +00:00
Ben Smith
e79760c9d3 [wasm] Fail validation with non-zero functions, but no code section
Make sure to check that the number of declared functions (specified in the
function section) matches the number of function bodies, even if the code
section is omitted.

Note that it is valid to have a function section with zero declared functions
and an omitted code section, and vice versa.

Bug: v8:8514
Change-Id: I4effa5abe2ed6d71146a665d2df6a2f48b5a84be
Reviewed-on: https://chromium-review.googlesource.com/c/1351306
Commit-Queue: Ben Smith <binji@chromium.org>
Reviewed-by: Clemens Hammacher <clemensh@chromium.org>
Cr-Commit-Position: refs/heads/master@{#57949}
2018-11-29 17:50:05 +00:00
Ben L. Titzer
cb242eded6 [iwyu] Extract src/memcopy.h from src/utils.h
This CL moves a number of memory-related methods out of utils into its
own header, since utils.h is included in many places that do not need
these methods.

R=clemensh@chromium.org,mstarzinger@chromium.org

Change-Id: I5155baf329844784286413408c05c7108b789020
Reviewed-on: https://chromium-review.googlesource.com/c/1354889
Commit-Queue: Ben Titzer <titzer@chromium.org>
Reviewed-by: Michael Starzinger <mstarzinger@chromium.org>
Reviewed-by: Clemens Hammacher <clemensh@chromium.org>
Reviewed-by: Marja Hölttä <marja@chromium.org>
Cr-Commit-Position: refs/heads/master@{#57948}
2018-11-29 17:01:10 +00:00
Andreas Haas
3d2bc5d041 Reland: [wasm] Add more unit tests for trap handler
The problem were missing V8_EXPORT_PRIVATE and V8_EXPORT.

The unittests test if the trap handler only handles those traps it
is supposed to handle:
* Only handle traps when the thread-in-wasm flag is set.
* Only handle traps of the right type, i.e. memory access violations.
* Only handle traps at recorded instructions.

The tests also test the consistency of the thread-in-wasm flag. I made
one change in the trap handler where that consistency could be
violated.

All tests are executed with the default trap handler provided by V8,
and with the trap handler callback installed in a test signal/exception
handler.

Patchset 1 is the original CL.

R=mstarzinger@chromium.org

Change-Id: I172d94f24cdba4c3a1f7f344825b059dbb59da79
Reviewed-on: https://chromium-review.googlesource.com/c/1351024
Reviewed-by: Ulan Degenbaev <ulan@chromium.org>
Reviewed-by: Michael Starzinger <mstarzinger@chromium.org>
Commit-Queue: Andreas Haas <ahaas@chromium.org>
Cr-Commit-Position: refs/heads/master@{#57947}
2018-11-29 16:33:10 +00:00
Michael Lippautz
5748a22fa0 [heap] Fix context disposal heap limit
Fix two bugs:
- Initial configuration of limit allowed to go below the size of already
  allocated objects.
- Context disposal without dependend context reset the heap state to not
  configured without actually increasing the limit again.

Bug: chromium:843903
Change-Id: Ibdcf69b0b92b800f8919d5cc98186334945d811f
Reviewed-on: https://chromium-review.googlesource.com/c/1355143
Reviewed-by: Ulan Degenbaev <ulan@chromium.org>
Commit-Queue: Michael Lippautz <mlippautz@chromium.org>
Cr-Commit-Position: refs/heads/master@{#57946}
2018-11-29 16:28:38 +00:00
Michael Starzinger
69ab6954b1 [wasm] Fix exception section code for spec compliance.
R=clemensh@chromium.org
BUG=v8:8091

Change-Id: Ib0e0b50d1fe24b0e528a3dd9849829799b33f1bc
Reviewed-on: https://chromium-review.googlesource.com/c/1355139
Reviewed-by: Clemens Hammacher <clemensh@chromium.org>
Commit-Queue: Michael Starzinger <mstarzinger@chromium.org>
Cr-Commit-Position: refs/heads/master@{#57945}
2018-11-29 16:21:58 +00:00
Clemens Hammacher
fd7d6b8be0 [wasm] Pass offset instead of pc to error functions
This adds error functions that receive offsets instead of pc, since the
streaming compiler stores different sections in different buffers, so
computing pointer differences between different sections does not work.
We keep the pc-based methods for now to reduce code-churn and
complexity at the different call sites.

R=ahaas@chromium.org
CC=binji@chromium.org

Bug: v8:8238
Change-Id: I1aa68740bdda93c3341431aa7a81ac01ecfb71bb
Reviewed-on: https://chromium-review.googlesource.com/c/1354463
Reviewed-by: Andreas Haas <ahaas@chromium.org>
Commit-Queue: Clemens Hammacher <clemensh@chromium.org>
Cr-Commit-Position: refs/heads/master@{#57944}
2018-11-29 16:13:38 +00:00
Michael Starzinger
d5e8e35249 [wasm] Introduce dedicated WasmExceptionTag type.
This introduces a dedicated instance type for exception tags. The main
motivation is to reduce their footprint and getting rid of a temporary
workaround that used the {JSObject} type for this purpose.

R=clemensh@chromium.org
BUG=v8:8091

Change-Id: Id5678bce513f2ac086c7380bd803011b11d5050e
Reviewed-on: https://chromium-review.googlesource.com/c/1354464
Reviewed-by: Clemens Hammacher <clemensh@chromium.org>
Commit-Queue: Michael Starzinger <mstarzinger@chromium.org>
Cr-Commit-Position: refs/heads/master@{#57943}
2018-11-29 15:53:36 +00:00
Vasili Skurydzin
520bc3982b aix: prevent stack overflow in RegExp test by increasing available stack size
Change-Id: If22939274db5db07a4f947ef5ef209d96078da36
Reviewed-on: https://chromium-review.googlesource.com/c/1351766
Reviewed-by: Jakob Gruber <jgruber@chromium.org>
Commit-Queue: Junliang Yan <jyan@ca.ibm.com>
Cr-Commit-Position: refs/heads/master@{#57942}
2018-11-29 15:47:06 +00:00
Sigurd Schneider
f86946fda3 [tools] Add ninja targets that generate all generated .cc files
This adds a new target :generated_cc_files which generates all
generated .cc files and is quick to build (~5sec on my machine).

TBR=yangguo@chromium.org

Change-Id: I51485635671b55302b06f1ea300e86ef1745931e
Bug: v8:8526
Reviewed-on: https://chromium-review.googlesource.com/c/1354881
Commit-Queue: Sigurd Schneider <sigurds@chromium.org>
Reviewed-by: Michael Achenbach <machenbach@chromium.org>
Cr-Commit-Position: refs/heads/master@{#57941}
2018-11-29 15:28:02 +00:00
Toon Verwaest
3b30f4d350 [parser] Change pattern error message so we can drop ExpressionClassifier::Error::arg
Changes [ x **= 2 ] = [] from

[ x **= 2 ] = []
    ^^^
SyntaxError: Unexpected token **=

to:

[ x **= 2 ] = []
  ^^^^^^^

SyntaxError: Invalid destructuring assignment target
Change-Id: I07170d12c151a94a7f99d37dce17197a3aa6f503
Reviewed-on: https://chromium-review.googlesource.com/c/1355140
Reviewed-by: Igor Sheludko <ishell@chromium.org>
Commit-Queue: Toon Verwaest <verwaest@chromium.org>
Cr-Commit-Position: refs/heads/master@{#57940}
2018-11-29 15:02:26 +00:00
George Wort
a35da84bbd Revert "[liftoff][arm] Fix overlapping of F32 and F64 registers in Liftoff"
This reverts commit 291a602973.

Reason for revert: Unnecessary following f32 support for Liftoff
on arm32.

Original change's description:
> [liftoff][arm] Fix overlapping of F32 and F64 registers in Liftoff
>
> Add a check to bailout in the case when F32 parameters are used for Arm.
>
> Bug: v8:6600, chromium:904026, chromium:904606
> Change-Id: I7f70c0806994a89dca31ef7e0b68f91d68484936
> Reviewed-on: https://chromium-review.googlesource.com/c/1346492
> Commit-Queue: Clemens Hammacher <clemensh@chromium.org>
> Reviewed-by: Clemens Hammacher <clemensh@chromium.org>
> Cr-Commit-Position: refs/heads/master@{#57741}

TBR=titzer@chromium.org,clemensh@chromium.org,george.wort@arm.com

Change-Id: I98ba43017f521c83b96bbb15e9dc803954dc1eec
No-Presubmit: true
No-Tree-Checks: true
No-Try: true
Bug: v8:6600, chromium:904026, chromium:904606
Reviewed-on: https://chromium-review.googlesource.com/c/1354467
Reviewed-by: Clemens Hammacher <clemensh@chromium.org>
Commit-Queue: Clemens Hammacher <clemensh@chromium.org>
Cr-Commit-Position: refs/heads/master@{#57939}
2018-11-29 14:05:34 +00:00
Toon Verwaest
4b92b0f8cf [parser] Clear scope_snapshot_ upon parser destruction to avoid use-after-(recent)free
|scope_snapshot_| might not have been cleared if there was a parser error between setting
the snapshot and consuming it. Explicitly clear it at the end of parsing for that case.
Otherwise Scope::Snapshot's destructor will possibly write into the already freed zone.

Bug: chromium:909976
Change-Id: I8469d11f04e7f71528be5cba5663c652cd7eacb2
Reviewed-on: https://chromium-review.googlesource.com/c/1354880
Commit-Queue: Toon Verwaest <verwaest@chromium.org>
Reviewed-by: Leszek Swirski <leszeks@chromium.org>
Cr-Commit-Position: refs/heads/master@{#57938}
2018-11-29 14:04:13 +00:00
Michael Hablich
bb22e3226a Update V8 version to 7.3
TBR=machenbach@chromium.org

Change-Id: Id131f9624b6cd8e72f45e0506644d9e9765fa6f2
Reviewed-on: https://chromium-review.googlesource.com/c/1354888
Reviewed-by: Michael Hablich <hablich@chromium.org>
Commit-Queue: Michael Hablich <hablich@chromium.org>
Cr-Commit-Position: refs/heads/master@{#57937}
2018-11-29 13:45:38 +00:00
Hannes Payer
47d4ac12ff [heap] Make page promotion infrastructure aware of large objects.
Bug: chromium:852420
Change-Id: I869ee5d6b705da0dab3c78dfd01eff9aca469d01
Reviewed-on: https://chromium-review.googlesource.com/c/1354886
Commit-Queue: Hannes Payer <hpayer@chromium.org>
Reviewed-by: Ulan Degenbaev <ulan@chromium.org>
Cr-Commit-Position: refs/heads/master@{#57936}
2018-11-29 13:35:48 +00:00
Peter Marshall
6c8b410261 Reland "[cpu-profiler] Fix stack iterability for fast C calls with no exit frame"
This is a reland of d5f4a33eb8
Landing with test disabled for now.

Original change's description:
> [cpu-profiler] Fix stack iterability for fast C calls with no exit frame
>
> Before fast C calls, store the current FP and PC on the isolate. When
> iterating frames in SafeStackFrameIterator, check if these fields are
> set and start iterating at the calling frame's FP instead of the current
> FP, which will be in C++ code. We need to do this because c_entry_fp is
> not set on the Isolate for Fast-C-Calls because we don't build an exit
> frame.
>
> This change makes stack samples that occur within 'Fast-C-Calls'
> iterable, meaning we can properly attribute ticks within the JS caller.
>
> Fast-C-Calls can't call back into JS code, so we can only ever have one
> such call on the stack at a time, allowing us to store the FP on the
> isolate rather than the stack.
>
> TBR=v8-mips-ports@googlegroups.com
>
> Bug: v8:8464, v8:7202
> Change-Id: I7bf39eba779dad34754d5759d741c421b362a406
> Reviewed-on: https://chromium-review.googlesource.com/c/1340241
> Commit-Queue: Peter Marshall <petermarshall@chromium.org>
> Reviewed-by: Jakob Gruber <jgruber@chromium.org>
> Reviewed-by: Martyn Capewell <martyn.capewell@arm.com>
> Reviewed-by: Alexei Filippov <alph@chromium.org>
> Cr-Commit-Position: refs/heads/master@{#57896}

TBR=v8-mips-ports@googlegroups.com
TBR=jgruber@chromium.org

Bug: v8:8464, v8:7202
Change-Id: I260d5ab3bc12c9c4529fb52a297a1040dcaa8ebf
Reviewed-on: https://chromium-review.googlesource.com/c/1354466
Commit-Queue: Peter Marshall <petermarshall@chromium.org>
Reviewed-by: Peter Marshall <petermarshall@chromium.org>
Cr-Commit-Position: refs/heads/master@{#57935}
2018-11-29 13:05:07 +00:00
Ulan Degenbaev
799dfad502 Prepare bottleneck for setting instance descriptors.
This refactors Map operations to update the instance descriptors and
the number of own descriptors via the SetInstanceDescriptors bottleneck.
This will allow us to add a special marking barrier for these updates.

Bug: v8:8486
Change-Id: Ie9c746d4bcdd6166d38402622734693fa59faf21
Reviewed-on: https://chromium-review.googlesource.com/c/1354883
Reviewed-by: Igor Sheludko <ishell@chromium.org>
Commit-Queue: Ulan Degenbaev <ulan@chromium.org>
Cr-Commit-Position: refs/heads/master@{#57934}
2018-11-29 12:50:53 +00:00
Igor Sheludko
11e456845b [heap] Unify slots processing in performance-critical code
This CL unifies performance-critical slot processing code that was manually
specifaized for ObjectSlot. Now one templated implementation can be used
for processing both ObjectSlot and MaybeObjectSlot.

Bug: v8:8518
Change-Id: Ia4346a817911f8042459ce579741fe2308ef5e4d
Reviewed-on: https://chromium-review.googlesource.com/c/1354459
Commit-Queue: Igor Sheludko <ishell@chromium.org>
Reviewed-by: Jakob Kummerow <jkummerow@chromium.org>
Reviewed-by: Ulan Degenbaev <ulan@chromium.org>
Reviewed-by: Michael Lippautz <mlippautz@chromium.org>
Cr-Commit-Position: refs/heads/master@{#57933}
2018-11-29 12:41:08 +00:00
George Wort
4fb6241148 [liftoff][arm] Implement the handling of f32
This supports the use of f32 values for the arm32 port of Liftoff.

Bug: v8:6600
Change-Id: I1fa2782f5a8bc6687a17d2df6e4ec8036b23452c
Reviewed-on: https://chromium-review.googlesource.com/c/1354040
Commit-Queue: Clemens Hammacher <clemensh@chromium.org>
Reviewed-by: Clemens Hammacher <clemensh@chromium.org>
Cr-Commit-Position: refs/heads/master@{#57932}
2018-11-29 12:36:06 +00:00
Marja Hölttä
51f75d3772 [tools] Add file positions to map-explorer
NOTRY=true

Change-Id: I076e2f6c39674a98827e5939c9527678a5f81368
Reviewed-on: https://chromium-review.googlesource.com/c/1354882
Commit-Queue: Marja Hölttä <marja@chromium.org>
Reviewed-by: Camillo Bruni <cbruni@chromium.org>
Cr-Commit-Position: refs/heads/master@{#57931}
2018-11-29 11:42:25 +00:00
Tobias Tebbi
270437fd7a [csa] disable CSA re-scheduling
Disable CSA re-scheduling for the branch point, to address performance
regressions.

Bug: chromium:907011
Change-Id: I608ae23c20d8e1dd9a233dcb2d3f4ab4d8a5241e
Reviewed-on: https://chromium-review.googlesource.com/c/1351009
Reviewed-by: Michael Starzinger <mstarzinger@chromium.org>
Commit-Queue: Tobias Tebbi <tebbi@chromium.org>
Cr-Commit-Position: refs/heads/master@{#57930}
2018-11-29 11:13:34 +00:00
Ross McIlroy
21a399c0a7 [Builtins] Check for SFI being compiled first in CompileLazy.
Swaps around the checks in CompileLazy to ensure we always enter the
runtime to lazy compile if a function's SFI is uncompiled. This
is necessary with bytecode flushing since the function may have
an optimized code marker in the feedback vector, even if the
bytecode has been flushed, and we don't want to try to optimize
this flushed function.

BUG=v8:8395

Change-Id: I7a348c40146673ba4a8f5e14d06995bbcc141695
Reviewed-on: https://chromium-review.googlesource.com/c/1352277
Commit-Queue: Ross McIlroy <rmcilroy@chromium.org>
Reviewed-by: Mythri Alle <mythria@chromium.org>
Cr-Commit-Position: refs/heads/master@{#57929}
2018-11-29 10:45:49 +00:00
Jakob Kummerow
eee67af3e8 [ubsan] Be more explicit about casting ObjectPtr
Explicitly disallow implicit casting of ObjectPtr to bool to match
clang's and MSVC's behavior.
Introduce a few function overloads using ObjectPtr instead of Object*.
Fix printing of ObjectPtr for objects-printer.cc and GTest.

Bug: v8:3770
Change-Id: I3c3580d363ae6d9fe8f743c6151abc11a915f05c
Reviewed-on: https://chromium-review.googlesource.com/c/1351245
Commit-Queue: Jakob Kummerow <jkummerow@chromium.org>
Reviewed-by: Ulan Degenbaev <ulan@chromium.org>
Cr-Commit-Position: refs/heads/master@{#57928}
2018-11-29 09:44:34 +00:00
tzik
29ad898c88 Deprecate v8::Isolate::GetEnteredContext
This CL marks v8::Isolate::GetEnteredContext as deprecated in favor of
replacing it with GetEnteredOrMicrotaskContext. Blink no longer uses it,
and Node.js does not use this too.

GetEnteredOrMicrotaskContext() is relevant for all known cases over
GetEnteredContext(), and it costs 2% of a benchmark score to maintain
the entered contexts under the nestable microtask context.
https://crrev.com/c/1322290 is a context for the bencmark and nestable
microtask contexts.

Bug: v8:8124
Change-Id: I260e32daadf34dc587926a1e20ab950ff2e31699
Reviewed-on: https://chromium-review.googlesource.com/c/1353025
Commit-Queue: Taiju Tsuiki <tzik@chromium.org>
Reviewed-by: Yang Guo <yangguo@chromium.org>
Cr-Commit-Position: refs/heads/master@{#57927}
2018-11-29 08:21:14 +00:00
Michael Achenbach
e0414b462d [test] Bump shards on slow bot
TBR=sergiyb@chromium.org
NOTRY=true

Change-Id: I74a1f7a66ee31ea4e6b02286de2f99c75f596027
Reviewed-on: https://chromium-review.googlesource.com/c/1354879
Reviewed-by: Michael Achenbach <machenbach@chromium.org>
Commit-Queue: Michael Achenbach <machenbach@chromium.org>
Cr-Commit-Position: refs/heads/master@{#57926}
2018-11-29 08:12:12 +00:00
Michael Achenbach
767861046c Revert "Reland "[cpu-profiler] Fix stack iterability for fast C calls with no exit frame""
This reverts commit ddaa1f0a0d.

Reason for revert:
Still flaky on windows. Maybe reland and keep skipped on windows?
https://ci.chromium.org/p/v8/builders/luci.v8.ci/V8%20Win32%20-%20nosnap%20-%20shared/31002
https://ci.chromium.org/p/v8/builders/luci.v8.ci/V8%20Win64/27826

Original change's description:
> Reland "[cpu-profiler] Fix stack iterability for fast C calls with no exit frame"
> 
> This is a reland of d5f4a33eb8
> 
> Original change's description:
> > [cpu-profiler] Fix stack iterability for fast C calls with no exit frame
> >
> > Before fast C calls, store the current FP and PC on the isolate. When
> > iterating frames in SafeStackFrameIterator, check if these fields are
> > set and start iterating at the calling frame's FP instead of the current
> > FP, which will be in C++ code. We need to do this because c_entry_fp is
> > not set on the Isolate for Fast-C-Calls because we don't build an exit
> > frame.
> >
> > This change makes stack samples that occur within 'Fast-C-Calls'
> > iterable, meaning we can properly attribute ticks within the JS caller.
> >
> > Fast-C-Calls can't call back into JS code, so we can only ever have one
> > such call on the stack at a time, allowing us to store the FP on the
> > isolate rather than the stack.
> >
> > TBR=v8-mips-ports@googlegroups.com
> >
> > Bug: v8:8464, v8:7202
> > Change-Id: I7bf39eba779dad34754d5759d741c421b362a406
> > Reviewed-on: https://chromium-review.googlesource.com/c/1340241
> > Commit-Queue: Peter Marshall <petermarshall@chromium.org>
> > Reviewed-by: Jakob Gruber <jgruber@chromium.org>
> > Reviewed-by: Martyn Capewell <martyn.capewell@arm.com>
> > Reviewed-by: Alexei Filippov <alph@chromium.org>
> > Cr-Commit-Position: refs/heads/master@{#57896}
> 
> TBR=v8-mips-ports@googlegroups.com
> TBR=jgruber@chromium.org
> 
> Bug: v8:8464, v8:7202
> Change-Id: I5f37ded4ea572e8e9890ba186aa3d74a0dfc1274
> Reviewed-on: https://chromium-review.googlesource.com/c/1354042
> Reviewed-by: Peter Marshall <petermarshall@chromium.org>
> Commit-Queue: Peter Marshall <petermarshall@chromium.org>
> Cr-Commit-Position: refs/heads/master@{#57912}

TBR=alph@chromium.org,jgruber@chromium.org,petermarshall@chromium.org,martyn.capewell@arm.com,v8-arm-ports@googlegroups.com,v8-mips-ports@googlegroups.com,ibogosavljevic@wavecomp.com

Change-Id: If810648dbf60df2ff70455b6e8ef466136c90145
No-Presubmit: true
No-Tree-Checks: true
No-Try: true
Bug: v8:8464, v8:7202
Reviewed-on: https://chromium-review.googlesource.com/c/1354461
Reviewed-by: Michael Achenbach <machenbach@chromium.org>
Commit-Queue: Michael Achenbach <machenbach@chromium.org>
Cr-Commit-Position: refs/heads/master@{#57925}
2018-11-29 08:05:39 +00:00
v8-ci-autoroll-builder
7ef67915bf Update V8 DEPS.
Rolling v8/build: bbd67a3..b7e2add

Rolling v8/test/wasm-js/data: 6028a96..2e948dd

Rolling v8/third_party/catapult: https://chromium.googlesource.com/catapult/+log/17079a5..eee0f6a

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

Change-Id: Ib83450725f0228b99e29c05be42dd66d627917b8
Reviewed-on: https://chromium-review.googlesource.com/c/1351305
Commit-Queue: v8-ci-autoroll-builder <v8-ci-autoroll-builder@chops-service-accounts.iam.gserviceaccount.com>
Reviewed-by: v8-ci-autoroll-builder <v8-ci-autoroll-builder@chops-service-accounts.iam.gserviceaccount.com>
Cr-Commit-Position: refs/heads/master@{#57924}
2018-11-29 04:00:09 +00:00
Jakob Kummerow
6b67d21a96 [ubsan] Port DescriptorArray to the new design
Bug: v8:3770
Change-Id: If41076a377d12922cc3df859c678e1f20b99b00d
Reviewed-on: https://chromium-review.googlesource.com/c/1351242
Commit-Queue: Jakob Kummerow <jkummerow@chromium.org>
Reviewed-by: Benedikt Meurer <bmeurer@chromium.org>
Reviewed-by: Michael Lippautz <mlippautz@chromium.org>
Reviewed-by: Ulan Degenbaev <ulan@chromium.org>
Reviewed-by: Igor Sheludko <ishell@chromium.org>
Cr-Commit-Position: refs/heads/master@{#57923}
2018-11-29 03:24:47 +00:00
Deepti Gandluri
7f9bc8174c [wasm] Minor restructuring of WasmMemoryObject::Grow()
Change-Id: Ia36e1b478c285752f2dafaaed509fc698acb2ccc
Reviewed-on: https://chromium-review.googlesource.com/c/1354246
Commit-Queue: Deepti Gandluri <gdeepti@chromium.org>
Reviewed-by: Ben Smith <binji@chromium.org>
Cr-Commit-Position: refs/heads/master@{#57922}
2018-11-29 03:01:04 +00:00
Jakob Kummerow
862266a2aa [ubsan] Port WeakFixedArray and subclasses
TransitionArray, NormalizedMapCache, DependentCode to the new design.

Bug: v8:3770
Change-Id: I8bd56f231fb62b146e0fb05989418aedb62a628b
Reviewed-on: https://chromium-review.googlesource.com/c/1350287
Commit-Queue: Jakob Kummerow <jkummerow@chromium.org>
Reviewed-by: Hannes Payer <hpayer@chromium.org>
Reviewed-by: Adam Klein <adamk@chromium.org>
Cr-Commit-Position: refs/heads/master@{#57921}
2018-11-29 02:03:20 +00:00
Aleksei Koziatinskii
ed2e7eb92d inspector: removed deprecated Debugger.scheduleStepIntoAsync
This method was experimental and deprecated for a while.

R=dgozman@chromium.org

Bug: none
Change-Id: I7d5a13a83f36ecc7a92300f690dff5c8bb26f8de
Reviewed-on: https://chromium-review.googlesource.com/c/1354182
Reviewed-by: Dmitry Gozman <dgozman@chromium.org>
Commit-Queue: Aleksey Kozyatinskiy <kozyatinskiy@chromium.org>
Cr-Commit-Position: refs/heads/master@{#57920}
2018-11-29 01:34:04 +00:00
Aseem Garg
f4775f1c10 Revert "[wasm] Add I64AtomicWait implementation"
This reverts commit 9436e8a817.

Reason for revert: Breaks TSAN.

Original change's description:
> [wasm] Add I64AtomicWait implementation
> 
> Bug=v8:8075
> R=​adamk@chromium.org,binji@chromium.org
> 
> Change-Id: I11ef5daccd043123b23e60c93ee0df79cabe9ccd
> Reviewed-on: https://chromium-review.googlesource.com/c/1342948
> Reviewed-by: Adam Klein <adamk@chromium.org>
> Reviewed-by: Ben Smith <binji@chromium.org>
> Commit-Queue: Aseem Garg <aseemgarg@chromium.org>
> Cr-Commit-Position: refs/heads/master@{#57917}

TBR=binji@chromium.org,adamk@chromium.org,aseemgarg@chromium.org

Change-Id: Ic82ce8794410a0d4d19de07abd9bb8a7aaff1c1c
No-Presubmit: true
No-Tree-Checks: true
No-Try: true
Reviewed-on: https://chromium-review.googlesource.com/c/1351303
Reviewed-by: Aseem Garg <aseemgarg@chromium.org>
Commit-Queue: Aseem Garg <aseemgarg@chromium.org>
Cr-Commit-Position: refs/heads/master@{#57919}
2018-11-29 01:10:39 +00:00
Jakob Kummerow
81620900e9 [ubsan] Port SharedFunctionInfo to the new design
Bug: v8:3770
Change-Id: If405611d359d29ae1958beebd9202e068434a621
Reviewed-on: https://chromium-review.googlesource.com/c/1350286
Commit-Queue: Jakob Kummerow <jkummerow@chromium.org>
Reviewed-by: Leszek Swirski <leszeks@chromium.org>
Reviewed-by: Michael Starzinger <mstarzinger@chromium.org>
Reviewed-by: Jakob Gruber <jgruber@chromium.org>
Cr-Commit-Position: refs/heads/master@{#57918}
2018-11-28 21:23:50 +00:00
Aseem Garg
9436e8a817 [wasm] Add I64AtomicWait implementation
Bug=v8:8075
R=adamk@chromium.org,binji@chromium.org

Change-Id: I11ef5daccd043123b23e60c93ee0df79cabe9ccd
Reviewed-on: https://chromium-review.googlesource.com/c/1342948
Reviewed-by: Adam Klein <adamk@chromium.org>
Reviewed-by: Ben Smith <binji@chromium.org>
Commit-Queue: Aseem Garg <aseemgarg@chromium.org>
Cr-Commit-Position: refs/heads/master@{#57917}
2018-11-28 20:03:04 +00:00
Igor Sheludko
8cfec35846 [cleanup] Fix kPointerSize usages in src/objects/bigint.*
Bug: v8:8477, v8:8238
Change-Id: Ice11af2becb3b88a884c9231ed9610210efcc4d6
Reviewed-on: https://chromium-review.googlesource.com/c/1352292
Reviewed-by: Jakob Kummerow <jkummerow@chromium.org>
Reviewed-by: Michael Lippautz <mlippautz@chromium.org>
Commit-Queue: Igor Sheludko <ishell@chromium.org>
Cr-Commit-Position: refs/heads/master@{#57916}
2018-11-28 19:46:10 +00:00
Tom Tan
ef8323ea82 Fix embedded assembly for Windows ARM64.
Two Fixes included to make V8 build work for Windows ARM64.
1. Don't emit ".def" and related macros to define function beginning, because they are invalid for Windows ARM64.
2. Set alignment of data section to 8 which is required for instruction which loads element from v8_Default_embedded_blob_.


Version 7.2.479

Performance and stability improvements on all platforms.

TBR=v8-ci-autoroll-builder@chops-service-accounts.iam.gserviceaccount.com

Change-Id: I0bfea5dd8ed6c1340d11c13dcc2e492e7b22aa8c
Reviewed-on: https://chromium-review.googlesource.com/c/1352210
Reviewed-by: v8-ci-autoroll-builder <v8-ci-autoroll-builder@chops-service-accounts.iam.gserviceaccount.com>
Cr-Original-Commit-Position: refs/heads/7.2.479@{#1}
Cr-Original-Branched-From: a8152aac7049aed0cc7e7437898de2fce2787288-refs/heads/master@{#57863}
Bug: chromium:893460
Reviewed-on: https://chromium-review.googlesource.com/c/1352791
Reviewed-by: Jakob Gruber <jgruber@chromium.org>
Commit-Queue: Tom Tan <Tom.Tan@microsoft.com>
Cr-Commit-Position: refs/heads/master@{#57915}
2018-11-28 19:30:18 +00:00
Vasili Skurydzin
82bcbebd00 aix: [test] fix i-cache cctest on Aix platform
Change-Id: I1015edc7a4522ae161dfd408db2ddcfae5dbbc69
Reviewed-on: https://chromium-review.googlesource.com/c/1352218
Reviewed-by: Michael Starzinger <mstarzinger@chromium.org>
Commit-Queue: Junliang Yan <jyan@ca.ibm.com>
Cr-Commit-Position: refs/heads/master@{#57914}
2018-11-28 18:43:20 +00:00
Vasili Skurydzin
b3e7775f82 aix, builtins: Embedded builtins support on Aix
Bug: v8:8043
Change-Id: Iff786eccd2dcb63e46e331b096d91a6ddb13f851
Reviewed-on: https://chromium-review.googlesource.com/c/1351129
Reviewed-by: Junliang Yan <jyan@ca.ibm.com>
Reviewed-by: Jakob Gruber <jgruber@chromium.org>
Commit-Queue: Junliang Yan <jyan@ca.ibm.com>
Cr-Commit-Position: refs/heads/master@{#57913}
2018-11-28 18:28:20 +00:00