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
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
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
titzer
5134242378
[wasm] Enable more ASM->WASM tests.
...
R=jarin@chromium.org
BUG=
Review URL: https://codereview.chromium.org/1830703003
Cr-Commit-Position: refs/heads/master@{#35067}
2016-03-24 19:03:21 +00:00
bradnelson
2e87c7f5ae
Add a test of depot across an asm.js -> wasm module.
...
This previously tickled the failure fixed in this issue:
https://crrev.com/6a806a558158cbab55ad9a1a456942a7c509c810
BUG= https://code.google.com/p/v8/issues/detail?id=4203
TEST=asm-wasm-deopt
R=aseemgarg@chromium.org ,titzer@chromium.org
LOG=N
Review URL: https://codereview.chromium.org/1766153002
Cr-Commit-Position: refs/heads/master@{#35064}
2016-03-24 17:28:26 +00:00
titzer
6a806a5581
[wasm] Fix formal parameter count and parameter indexes in JS->wasm wrappers.
...
R=jarin@chromium.org ,bradnelson@chromium.org
BUG=
Review URL: https://codereview.chromium.org/1828223002
Cr-Commit-Position: refs/heads/master@{#35056}
2016-03-24 13:24:20 +00:00
bradnelson
b224651b73
Fixing invalid asm.js in asm-wasm-literals.js
...
This was previously undetected due to a now fixed typing bug.
BUG= https://bugs.chromium.org/p/v8/issues/detail?id=4203
TEST=test-asm-validator,asm-wasm
TBR=titzer@chromium.org
LOG=N
NOTRY=true
Review URL: https://codereview.chromium.org/1823333005
Cr-Commit-Position: refs/heads/master@{#35048}
2016-03-24 00:00:39 +00:00
bradnelson
942ed11488
Properly handle unsigned literals, fix typing issue with unary +.
...
Properly convert unsigned literals.
Forbid using unary + on a kAsmInt.
Forbid multiplies other than * 1.0 as being equivalent to unary +.
BUG= https://bugs.chromium.org/p/v8/issues/detail?id=4203
TEST=test-asm-validator,asm-wasm
R=titzer@chromium.org ,aseemgarg@chromium.org
LOG=N
Review URL: https://codereview.chromium.org/1832603002
Cr-Commit-Position: refs/heads/master@{#35046}
2016-03-23 23:21:21 +00:00
titzer
3e0b6daf54
[wasm] Add more extensive tests for asm->wasm translation.
...
R=bradnelson@chromium.org
BUG=
Review URL: https://codereview.chromium.org/1825333004
Cr-Commit-Position: refs/heads/master@{#35045}
2016-03-23 23:19:22 +00:00
bradnelson
c728dad8b8
Enable embenchen/copy for wasm.
...
This got fixed by this change:
https://crrev.com/32a2ab0c724673961aa145ab63c79a29e6d28fa8
Adding a smaller mjsunit test capturing the issue (was with idiv register allocation).
BUG= https://bugs.chromium.org/p/chromium/issues/detail?id=593283
R=aseemgarg@chromium.org ,titzer@chromium.org
LOG=N
TEST=asm-wasm-copy
Review URL: https://codereview.chromium.org/1820163002
Cr-Commit-Position: refs/heads/master@{#35041}
2016-03-23 17:50:05 +00:00
bradnelson
cca5c3f630
Fix conversion to float32, typing issue, split apart asm-wasm tests.
...
Add missing conversions from other types to f32 in fround.
Restrict fround() to only float, double, signed, unsigned (no unions / intish).
Restrict Bitwise operations to intish, particularly |0, when not applied to a foreign function.
Adding more exhaustive tests of stdlib Math, move to a separate file.
Adding tests of interesting values for the stdlib asm.js functions.
BUG= https://bugs.chromium.org/p/v8/issues/detail?id=4203
TEST=test-asm-validator,asm-wasm
R=titzer@chromium.org ,rossberg@chromium.org
LOG=N
Review URL: https://codereview.chromium.org/1804243003
Cr-Commit-Position: refs/heads/master@{#34967}
2016-03-21 20:34:40 +00:00
bradnelson
ace6f1364a
Fixing +fround(x) in asm typer.
...
The rules for handling foreign functions were interfering with handling
of standard functions (such as fround).
Adding more tests around abs()
BUG= https://bugs.chromium.org/p/v8/issues/detail?id=4203
TEST=test-asm-validator,asm-wasm
R=titzer@chromium.org ,rossberg@chromium.org
LOG=N
Review URL: https://codereview.chromium.org/1794303002
Cr-Commit-Position: refs/heads/master@{#34756}
2016-03-14 17:29:25 +00:00
titzer
a42b24514e
[wasm] GC should ignore unboxed stack parameters in WASM frames.
...
R=mstarzinger@chromium.org ,bradnelson@chromium.org
BUG=
Review URL: https://codereview.chromium.org/1782613003
Cr-Commit-Position: refs/heads/master@{#34682}
2016-03-10 15:14:56 +00:00
jfb
abbdca947f
wasm: use strings for section names
...
This will require an equivalent sexpr-wasm change.
See:
https://github.com/WebAssembly/design/blob/master/BinaryEncoding.md#high-level-structure
R=titzer@chromium.org , binji@chronium.org
Review URL: https://codereview.chromium.org/1765843002
Cr-Commit-Position: refs/heads/master@{#34668}
2016-03-10 12:37:19 +00:00
titzer
4cb568ec5f
[wasm] Encode function signatures, bodies, and names as separate sections.
...
R=binji@chromium.org
BUG=
Review URL: https://codereview.chromium.org/1783593002
Cr-Commit-Position: refs/heads/master@{#34641}
2016-03-09 22:51:50 +00:00
binji
29cd25be1d
[Wasm] Move data segment data inline to the data segment section
...
BUG=
R=titzer@chromium.org
Review URL: https://codereview.chromium.org/1776923005
Cr-Commit-Position: refs/heads/master@{#34639}
2016-03-09 19:43:14 +00:00
binji
ca0dbaece0
[wasm] All strings are length-prefixed and inline
...
R=titzer@chromium.org
Review URL: https://codereview.chromium.org/1781523002
Cr-Commit-Position: refs/heads/master@{#34637}
2016-03-09 18:56:30 +00:00
titzer
f99624a98e
[wasm] Encode immediates to Load and Store as varint.
...
R=binji@chromium.org
BUG=
Review URL: https://codereview.chromium.org/1775123003
Cr-Commit-Position: refs/heads/master@{#34635}
2016-03-09 18:54:43 +00:00
titzer
8e9c019bf2
[wasm] Memory is exported on the module.exports object.
...
R=ahaas@chromium.org ,bradnelson@chromium.org
BUG=
Review URL: https://codereview.chromium.org/1775353003
Cr-Commit-Position: refs/heads/master@{#34621}
2016-03-09 13:32:53 +00:00
titzer
0974bf278c
[wasm] Create a proper map for functions created from WASM.
...
R=verwaest@chromium.org
BUG=
Review URL: https://codereview.chromium.org/1778863002
Cr-Commit-Position: refs/heads/master@{#34617}
2016-03-09 12:42:46 +00:00
binji
78f6f838f0
[Wasm] Convert many of the fixed-size values to LEB128.
...
This CL modifies the following to be LEB128:
* Function table indices
* Import table signature indices
* Export table function indices
* Function signature param count
* br/br_if break depth
* br_table target count
* block/loop expression count
Still to do:
* Import/export names (LEB128 count + inline data)
* Data segments (LEB128 offset + size + inline data)
* Function header stuff (should seperate into function sig and body sections)
* Memory access alignment + offset (still discussing)
BUG=
R=titzer@chromium.org
Review URL: https://codereview.chromium.org/1775873002
Cr-Commit-Position: refs/heads/master@{#34603}
2016-03-08 22:56:18 +00:00
titzer
d61a0c5a4a
[wasm] Support a two-level namespace for imports.
...
R=binji@chromium.org ,dschuff@chromium.org
BUG=
Review URL: https://codereview.chromium.org/1780483002
Cr-Commit-Position: refs/heads/master@{#34600}
2016-03-08 19:57:10 +00:00
titzer
5c1c98e829
[wasm] Rename _WASMEXP_ object to Wasm.
...
R=ahaas@chromium.org ,binji@chromium.org
BUG=
Review URL: https://codereview.chromium.org/1770383002
Cr-Commit-Position: refs/heads/master@{#34587}
2016-03-08 14:48:27 +00:00
titzer
56157fe819
[wasm] Allow Uint8Array in _WASMEXP_.instantiateModule()
...
R=dschuff@chromium.org
BUG=
Review URL: https://codereview.chromium.org/1767203002
Cr-Commit-Position: refs/heads/master@{#34565}
2016-03-07 21:09:54 +00:00
titzer
835c5e6beb
[wasm] Rework encoding of local declarations.
...
Local declarations were previously encoded as an optional set of
4 uint16 values as part of the function declaration. This CL
implements the current design of moving these declarations to
a list of pairs of (type, count) that is part of the body.
R=bradnelson@chromium.org ,binji@chromium.org
BUG=
Review URL: https://codereview.chromium.org/1763433002
Cr-Commit-Position: refs/heads/master@{#34564}
2016-03-07 21:05:15 +00:00
titzer
c38cd1698b
[wasm] Use the JavaScript WasmModuleBuilder utility in JS tests.
...
R=ahaas@chromium.org ,binji@chromium.org
BUG=
Review URL: https://codereview.chromium.org/1770913002
Cr-Commit-Position: refs/heads/master@{#34559}
2016-03-07 19:34:29 +00:00
Ben L. Titzer
fc936302fd
[wasm] One more fix to test-wasm-module-builder.js
...
TBR=machenbach@chromium.org
BUG=
Review URL: https://codereview.chromium.org/1769873002 .
Cr-Commit-Position: refs/heads/master@{#34525}
2016-03-07 10:14:25 +00:00
Ben L. Titzer
f8e761c6fd
[wasm] Fix stupid arguments.
...
TBR=machenbach@chromium.org
BUG=
Review URL: https://codereview.chromium.org/1772593002 .
Cr-Commit-Position: refs/heads/master@{#34524}
2016-03-07 10:09:18 +00:00
machenbach
701e520b2b
Reland of [wasm] Add a JavaScript utility to make it easier to build WASM modules from JavaScript. (patchset #1 id:1 of https://codereview.chromium.org/1768963002/ )
...
Reason for revert:
Fix landed in head.
Original issue's description:
> Revert of [wasm] Add a JavaScript utility to make it easier to build WASM modules from JavaScript. (patchset #1 id:1 of https://codereview.chromium.org/1774463002/ )
>
> Reason for revert:
> [Sheriff] Problem is not fixed:
> https://build.chromium.org/p/client.v8/builders/V8%20Linux%20-%20shared/builds/8799
>
> Original issue's description:
> > [wasm] Add a JavaScript utility to make it easier to build WASM modules from JavaScript.
> >
> > This is a reland of https://codereview.chromium.org/1762203002/
> >
> > R=ahaas@chromium.org ,binji@chromium.org,seththompson@chromium.org
> > BUG=
> >
> > Committed: https://crrev.com/aa5770805060a347c6b650634c736ba34ab61728
> > Cr-Commit-Position: refs/heads/master@{#34519}
>
> TBR=ahaas@chromium.org ,binji@chromium.org,seththompson@chromium.org,titzer@chromium.org
> # Skipping CQ checks because original CL landed less than 1 days ago.
> NOPRESUBMIT=true
> NOTREECHECKS=true
> NOTRY=true
> BUG=
TBR=ahaas@chromium.org ,binji@chromium.org,seththompson@chromium.org,titzer@chromium.org
# Skipping CQ checks because original CL landed less than 1 days ago.
NOPRESUBMIT=true
NOTREECHECKS=true
NOTRY=true
BUG=
Review URL: https://codereview.chromium.org/1769863002
Cr-Commit-Position: refs/heads/master@{#34523}
2016-03-07 10:03:01 +00:00
machenbach
6242b3893d
Revert of [wasm] Add a JavaScript utility to make it easier to build WASM modules from JavaScript. (patchset #1 id:1 of https://codereview.chromium.org/1774463002/ )
...
Reason for revert:
[Sheriff] Problem is not fixed:
https://build.chromium.org/p/client.v8/builders/V8%20Linux%20-%20shared/builds/8799
Original issue's description:
> [wasm] Add a JavaScript utility to make it easier to build WASM modules from JavaScript.
>
> This is a reland of https://codereview.chromium.org/1762203002/
>
> R=ahaas@chromium.org ,binji@chromium.org,seththompson@chromium.org
> BUG=
>
> Committed: https://crrev.com/aa5770805060a347c6b650634c736ba34ab61728
> Cr-Commit-Position: refs/heads/master@{#34519}
TBR=ahaas@chromium.org ,binji@chromium.org,seththompson@chromium.org,titzer@chromium.org
# Skipping CQ checks because original CL landed less than 1 days ago.
NOPRESUBMIT=true
NOTREECHECKS=true
NOTRY=true
BUG=
Review URL: https://codereview.chromium.org/1768963002
Cr-Commit-Position: refs/heads/master@{#34522}
2016-03-07 10:01:23 +00:00
Ben L. Titzer
79ebb2124d
[wasm] Fix arguments in test-wasm-module-builder.cc
...
Cr-Commit-Position: refs/heads/master@{#34521}
2016-03-07 09:59:28 +00:00
titzer
aa57708050
[wasm] Add a JavaScript utility to make it easier to build WASM modules from JavaScript.
...
This is a reland of https://codereview.chromium.org/1762203002/
R=ahaas@chromium.org ,binji@chromium.org,seththompson@chromium.org
BUG=
Review URL: https://codereview.chromium.org/1774463002
Cr-Commit-Position: refs/heads/master@{#34519}
2016-03-07 09:46:37 +00:00
adamk
6479b01aff
Revert of [wasm] Add a JavaScript utility to make it easier to build WASM modules from JavaScript. (patchset #2 id:20001 of https://codereview.chromium.org/1762203002/ )
...
Reason for revert:
New test test-wasm-module-builder fails on Linux - shared bot:
https://build.chromium.org/p/client.v8/builders/V8%20Linux%20-%20shared/builds/8793
Original issue's description:
> [wasm] Add a JavaScript utility to make it easier to build WASM modules from JavaScript.
>
> R=binji@chromium.org ,seththompson@chromium.org
> BUG=
>
> Committed: https://crrev.com/d130c6bdc6a424b068614592a0b79a34750af0fc
> Cr-Commit-Position: refs/heads/master@{#34513}
TBR=binji@chromium.org ,seththompson@chromium.org,titzer@chromium.org
# Skipping CQ checks because original CL landed less than 1 days ago.
NOPRESUBMIT=true
NOTREECHECKS=true
NOTRY=true
BUG=
Review URL: https://codereview.chromium.org/1771553002
Cr-Commit-Position: refs/heads/master@{#34514}
2016-03-05 02:21:20 +00:00
titzer
d130c6bdc6
[wasm] Add a JavaScript utility to make it easier to build WASM modules from JavaScript.
...
R=binji@chromium.org ,seththompson@chromium.org
BUG=
Review URL: https://codereview.chromium.org/1762203002
Cr-Commit-Position: refs/heads/master@{#34513}
2016-03-05 01:48:12 +00:00
bradnelson
530cc16460
Handle stack frames differently inside and on the boundary of wasm.
...
Frames entering of inside wasm don't have a function or context argument.
Adding distinct wasm frame and function types to express this.
Fixes a GC issue on several embenchen wasm tests, reenabling them.
BUG= https://code.google.com/p/v8/issues/detail?id=4203
TEST=mjsunit/wasm/embenchen
R=titzer@chromium.org ,aseemgarg@chromium.org,jfb@chromium.org,yangguo@chromium.org
LOG=N
Review URL: https://codereview.chromium.org/1764603003
Cr-Commit-Position: refs/heads/master@{#34476}
2016-03-04 04:45:45 +00:00
bradnelson
dbc0f99b94
Enabling some embenchen tests running through asm->wasm.
...
BUG= https://code.google.com/p/v8/issues/detail?id=4203
TEST=mjsunit/asm-wasm
R=titzer@chromium.org ,aseemgarg@chromium.org
LOG=N
Review URL: https://codereview.chromium.org/1758893002
Cr-Commit-Position: refs/heads/master@{#34466}
2016-03-03 18:53:05 +00:00
weiliang.lin
9d0cf920bd
[wasm] add rotate opcodes
...
BUG=
Review URL: https://codereview.chromium.org/1755013003
Cr-Commit-Position: refs/heads/master@{#34455}
2016-03-03 05:11:10 +00:00
bradnelson
4db99810da
Add wasm internal opcodes for asm.js stdlib functions we're missing.
...
BUG= https://code.google.com/p/v8/issues/detail?id=4203
TEST=mjsunit/asm-wasm
R=aseemgarg@chromium.org ,titzer@chromium.org,yangguo@chromium.org
LOG=N
Review URL: https://codereview.chromium.org/1729833002
Cr-Commit-Position: refs/heads/master@{#34452}
2016-03-03 01:23:22 +00:00
dtc-v8
76f37d3ba6
wasm: change the module memory size to be multiples of the page size, 64k.
...
BUG=
Review URL: https://codereview.chromium.org/1597163002
Cr-Commit-Position: refs/heads/master@{#34450}
2016-03-03 00:00:00 +00:00
bradnelson
2a9a770c2a
Convert float64 to float32 when coerced with a heapf32 assignment.
...
BUG= https://code.google.com/p/v8/issues/detail?id=4203
TEST=mjsunit/asm-wasm
R=titzer@chromium.org ,aseemgarg@chromium.org
LOG=N
Review URL: https://codereview.chromium.org/1749233002
Cr-Commit-Position: refs/heads/master@{#34404}
2016-03-01 18:07:19 +00:00
aseemgarg
4537f09374
Replace __init__ function in asm-wasm-builder with the start function section
...
BUG= https://code.google.com/p/v8/issues/detail?id=4203
TEST=mjsunit/asm-wasm
R=titzer@chromium.org ,bradnelson@chromium.org
LOG=N
Review URL: https://codereview.chromium.org/1750153002
Cr-Commit-Position: refs/heads/master@{#34375}
2016-03-01 05:50:55 +00:00
titzer
91802542d5
[wasm] Rename ExprBoolNot to ExprI32Eqz.
...
R=bradnelson@chromium.org , binji@chromium.org
BUG=
Review URL: https://codereview.chromium.org/1741393002
Cr-Commit-Position: refs/heads/master@{#34350}
2016-02-28 19:02:24 +00:00
titzer
06241221a6
[wasm] Add a magic word and a version number to the binary.
...
R=binji@chromium.org ,jfb@chromium.org
BUG=
Review URL: https://codereview.chromium.org/1740373002
Cr-Commit-Position: refs/heads/master@{#34346}
2016-02-28 00:37:29 +00:00
titzer
8344687c76
[wasm] Properly plumb the origin of the WASM module from asm.js translation.
...
R=bradnelson@chromium.org ,aseemgarg@chromium.org
BUG=
Review URL: https://codereview.chromium.org/1742073002
Cr-Commit-Position: refs/heads/master@{#34345}
2016-02-27 20:40:06 +00:00
titzer
d035d6172a
[wasm] Add an export table.
...
R=binji@chromium.org ,jfb@chromium.org
BUG=
Review URL: https://codereview.chromium.org/1744713003
Cr-Commit-Position: refs/heads/master@{#34342}
2016-02-27 01:54:30 +00:00
bradnelson
a52967680e
Allow bitwise operators to convert from intish to int in heap ops.
...
We previously supported use of bitwise operations to convert
from intish to int, but use of kAsmInt in some places and kAsmIntQ
in others prevents this from working with heap accesses.
Switch to use kAsmIntQ where appropriate (even though intish_ != 0
in principle captures the superset of these cases),
as it's more conservative (and uses types.h better).
BUG= https://code.google.com/p/v8/issues/detail?id=4203
TEST=mjsunit/asm-wasm
R=aseemgarg@chromium.org ,titzer@chromium.org
LOG=N
Review URL: https://codereview.chromium.org/1731603002
Cr-Commit-Position: refs/heads/master@{#34233}
2016-02-24 07:36:39 +00:00
bradnelson
c8c5b3fddf
Allow negative literals in asm->wasm non-conversion operations.
...
This allows expressions like:
(x + y) & -1
[intish] & [signed]
The previous conversion condition was too strict (intended to
forbid non-int expression conversion). Expressing in
a different way.
BUG= https://code.google.com/p/v8/issues/detail?id=4203
TEST=mjsunit/asm-wasm
R=aseemgarg@chromium.org ,titzer@chromium.org
LOG=N
Review URL: https://codereview.chromium.org/1717213002
Cr-Commit-Position: refs/heads/master@{#34228}
2016-02-23 21:10:16 +00:00
jfb
3c6a3ca7b0
Add WasmFrame, backtraces reflect wasm's presence
...
For now WasmFrame doesn't summarize the wasm frames. That'll require adding the
metadata in wasm-compiler similar to DeoptimizationInputData.
Teach the basic backtrace to iterate over stack frames instead of JS frames.
Update the wasm stack test.
`git cl format` touches random lines in files I touch.
R=titzer@chromium.org
TEST=d8 --test --expose-wasm test/mjsunit/mjsunit.js test/mjsunit/wasm/stack.js
Originally landed in: https://codereview.chromium.org/1712003003/
Reverted in: https://codereview.chromium.org/1730673002/
This patch puts the JSFunction on the C++ stack.
Review URL: https://codereview.chromium.org/1724063002
Cr-Commit-Position: refs/heads/master@{#34225}
2016-02-23 19:39:28 +00:00
bradnelson
74cf730098
Re-enable validation for asm->wasm embechen tests.
...
Now that register validation is working again, re-enable
for asm->wasm embenchen tests.
BUG= https://code.google.com/p/v8/issues/detail?id=4203
TEST=mjsunit/asm-wasm
R=aseemgarg@chromium.org ,titzer@chromium.org
LOG=N
Review URL: https://codereview.chromium.org/1724043002
Cr-Commit-Position: refs/heads/master@{#34223}
2016-02-23 19:06:29 +00:00
bradnelson
0dd24015fb
Allow constant multiply both ways.
...
asm.js permits both:
int * constant
constant * int
It does not, however, allow intishes in multiplies.
BUG= https://code.google.com/p/v8/issues/detail?id=4203
TEST=mjsunit/asm-wasm,test-asm-validator
R=aseemgarg@chromium.org ,titzer@chromium.org
LOG=N
Review URL: https://codereview.chromium.org/1718083004
Cr-Commit-Position: refs/heads/master@{#34222}
2016-02-23 19:04:58 +00:00
machenbach
943650784a
Revert of Add WasmFrame, backtraces reflect wasm's presence (patchset #9 id:160001 of https://codereview.chromium.org/1712003003/ )
...
Reason for revert:
[Sheriff] Seems to break gcmole:
https://build.chromium.org/p/client.v8/builders/V8%20Linux/builds/8295
Original issue's description:
> Add WasmFrame, backtraces reflect wasm's presence
>
> For now WasmFrame doesn't summarize the wasm frames. That'll require adding the
> metadata in wasm-compiler similar to DeoptimizationInputData.
>
> Teach the basic backtrace to iterate over stack frames instead of JS frames.
>
> Update the wasm stack test.
>
> `git cl format` touches random lines in files I touch.
>
> R=titzer@chromium.org
> TEST=d8 --test --expose-wasm test/mjsunit/mjsunit.js test/mjsunit/wasm/stack.js
>
> Committed: https://crrev.com/aeca945786dcccad3efecfddbf2c07aefa524a56
> Cr-Commit-Position: refs/heads/master@{#34220}
TBR=titzer@chromium.org ,mvstanton@chromium.org,mstarzinger@chromium.org,jfb@chromium.org
# Skipping CQ checks because original CL landed less than 1 days ago.
NOPRESUBMIT=true
NOTREECHECKS=true
NOTRY=true
Review URL: https://codereview.chromium.org/1730673002
Cr-Commit-Position: refs/heads/master@{#34221}
2016-02-23 18:57:26 +00:00
jfb
aeca945786
Add WasmFrame, backtraces reflect wasm's presence
...
For now WasmFrame doesn't summarize the wasm frames. That'll require adding the
metadata in wasm-compiler similar to DeoptimizationInputData.
Teach the basic backtrace to iterate over stack frames instead of JS frames.
Update the wasm stack test.
`git cl format` touches random lines in files I touch.
R=titzer@chromium.org
TEST=d8 --test --expose-wasm test/mjsunit/mjsunit.js test/mjsunit/wasm/stack.js
Review URL: https://codereview.chromium.org/1712003003
Cr-Commit-Position: refs/heads/master@{#34220}
2016-02-23 17:22:17 +00:00
bradnelson
af903021c6
Add asm.js stdlib portion implementable as wasm opcodes.
...
Lost in the repo shuffle:
https://github.com/WebAssembly/v8-native-prototype/pull/102
BUG= https://code.google.com/p/v8/issues/detail?id=4203
TEST=mjsunit/asm-wasm
R=aseemgarg@chromium.org ,titzer@chromium.org
LOG=N
Review URL: https://codereview.chromium.org/1702293002
Cr-Commit-Position: refs/heads/master@{#34218}
2016-02-23 16:23:29 +00:00
bradnelson
fe2ed5667b
Add asm->wasmified version of embenchen.
...
Adding a version of embenchen, modified to pass through
the asm->wasm javascript interface.
Disabling for now as fixes required to run it are outstanding.
BUG= https://code.google.com/p/v8/issues/detail?id=4203
TEST=mjsunit/wasm/embenchen
R=aseemgarg@chromium.org ,titzer@chromium.org
LOG=N
Review URL: https://codereview.chromium.org/1716273002
Cr-Commit-Position: refs/heads/master@{#34217}
2016-02-23 16:23:28 +00:00
bradnelson
7e805faa30
Allow intish and floatish to be coerced by heap assignment.
...
When assigning to an integer view of the heap an intish
value does not need to be collapsed with |0.
Similarly a floatish value does not need to be collapsed with
fround when assigned to a float view of the heap.
i32[0] = i32_1 + i32_2; // ok
f32[0] = f32_1 + f32_2; // ok
However, floatish values cannot be safely assigned to double
arrays.
f64[0] = f32_1 + f32_2; // not ok
BUG= https://code.google.com/p/v8/issues/detail?id=4203
TEST=mjsunit/asm-wasm,test-asm-validator
R=aseemgarg@chromium.org ,titzer@chromium.org
LOG=N
Review URL: https://codereview.chromium.org/1722473002
Cr-Commit-Position: refs/heads/master@{#34206}
2016-02-23 06:18:54 +00:00
bradnelson
37fc16ece4
Allow bitwise-or aside from type annotations in asm->wasm conversion.
...
BUG= https://code.google.com/p/v8/issues/detail?id=4203
TEST=mjsunit/asm-wasm
R=aseemgarg@chromium.org ,titzer@chromium.org
LOG=N
Review URL: https://codereview.chromium.org/1720773002
Cr-Commit-Position: refs/heads/master@{#34185}
2016-02-22 05:56:25 +00:00
titzer
4e316c38c5
[wasm] Fix bug in CallImport.
...
R=binji@chromium.org ,bradnelson@chromium.org
BUG=
Review URL: https://codereview.chromium.org/1717993002
Cr-Commit-Position: refs/heads/master@{#34181}
2016-02-22 00:47:02 +00:00
titzer
915ae08dd5
[wasm] Add support for import section.
...
This CL introduces an import section that names functions to be imported
as well as a CallImport bytecode to call imports from this table.
R=binji@chromium.org ,bradnelson@chromium.org
LOG=Y
BUG=chromium:575167
Review URL: https://codereview.chromium.org/1709653002
Cr-Commit-Position: refs/heads/master@{#34157}
2016-02-19 14:58:43 +00:00
bradnelson
6357ad847b
Support blocks in asm->wasm global section.
...
The parser can fold together comma separated declarations
into a single block. The AsmWasmBuilder needs to support
this case in order to handle asm.js modules that use this form.
BUG= https://code.google.com/p/v8/issues/detail?id=4203
TEST=mjsunit/asm-wasm
R=aseemgarg@chromium.org ,titzer@chromium.org
LOG=N
Review URL: https://codereview.chromium.org/1697423003
Cr-Commit-Position: refs/heads/master@{#34048}
2016-02-16 19:33:53 +00:00
bradnelson
f0d7c7a83b
Implementing comma operator for asm->wasm.
...
BUG= https://code.google.com/p/v8/issues/detail?id=4203
TEST=mjsunit/asm-wasm
R=aseemgarg@chromium.org ,titzer@chromium.org
LOG=N
Review URL: https://codereview.chromium.org/1704553002
Cr-Commit-Position: refs/heads/master@{#34044}
2016-02-16 18:34:17 +00:00
titzer
5c5c6e38e2
[wasm] Add support for a start function.
...
Add a section identifier for declaring a start function as an index into
the function table. (This could also be done as a decl flag on the
function, but don't feel strongly here, since we probably want to redo
this when adding an import/export section.)
The start function must accept no parameters. Its return value is
currently ignored.
R=binji@chromium.org ,bradnelson@chromium.org
BUG=chromium:575167
LOG=Y
Review URL: https://codereview.chromium.org/1692173002
Cr-Commit-Position: refs/heads/master@{#33978}
2016-02-15 08:59:16 +00:00
bradnelson
f9ee14e519
Allow looser heap accesses historically emitted by Emscripten.
...
Older versions of Emscripten appear to emit Asm.js containing:
HEAP8[x] with x in int
As opposed to the spec legal construct:
HEAP8[x>>0] with x in int
As older programs and even benchmarks such as Embenchen
include these constructs, support them for compatibility.
BUG= https://code.google.com/p/v8/issues/detail?id=4203
TEST=test-asm-validator,mjsunit/asm-wasm
R=aseemgarg@chromium.org ,titzer@chromium.org
LOG=N
Review URL: https://codereview.chromium.org/1692713006
Cr-Commit-Position: refs/heads/master@{#33964}
2016-02-13 06:21:35 +00:00
bradnelson
821c603e0c
Adding support for asm.js foreign globals.
...
Since wasm has no direct notion of foreign globals,
pass the ffi object on to the AsmWasmBuilder
so that foreign globals can be extracted at module
instantiation time.
BUG= https://code.google.com/p/v8/issues/detail?id=4203
TEST=mjsunit/asm-wasm
R=titzer@chromium.org ,aseemgarg@chromium.org
LOG=N
Review URL: https://codereview.chromium.org/1677373002
Cr-Commit-Position: refs/heads/master@{#33956}
2016-02-12 17:31:48 +00:00
aseemgarg
0e22baac12
fix int type coercion in asm to wasm
...
R=bradnelson@chromium.org
BUG=https://bugs.chromium.org/p/v8/issues/detail?id=4203
TEST=asm-wasm.js
LOG=N
Review URL: https://codereview.chromium.org/1675903002
Cr-Commit-Position: refs/heads/master@{#33793}
2016-02-06 00:57:02 +00:00
aseemgarg
f060922369
Add Foreign Functions to asm to wasm
...
R=bradnelson@chromium.org
BUG=https://bugs.chromium.org/p/v8/issues/detail?id=4203
TEST=asm-wasm.js
LOG=N
Review URL: https://codereview.chromium.org/1667253003
Cr-Commit-Position: refs/heads/master@{#33757}
2016-02-05 02:07:58 +00:00
jfb
ad6b8542a8
WebAssembly: add stack trace test
...
The test currently only shows the JavaScript stack frames, I'll then add
support for interleaved WebAssembly stack frames and update the test.
R=titzer@chromium.org
Review URL: https://codereview.chromium.org/1661383002
Cr-Commit-Position: refs/heads/master@{#33742}
2016-02-04 16:25:22 +00:00
aseemgarg
66018a0ea8
Fix asm-wasm.js test.
...
R=bradnelson@chromium.org
BUG=https://bugs.chromium.org/p/v8/issues/detail?id=4203
TEST=asm-wasm.js
LOG=N
Review URL: https://codereview.chromium.org/1664993002
Cr-Commit-Position: refs/heads/master@{#33713}
2016-02-03 22:40:31 +00:00
bradnelson
255f4507ec
Drop the compileRun + asmCompileRun methods from wasm.
...
Now that we have full fledged module instantiation,
keeping alive a second interface seems clunky.
Droping it and switching the tests.
BUG= https://code.google.com/p/v8/issues/detail?id=4203
TEST=test-asm-validator,asm-wasm,other wasm
R=titzer@chromium.org ,aseemgarg@chromium.org
LOG=N
Review URL: https://codereview.chromium.org/1660083002
Cr-Commit-Position: refs/heads/master@{#33700}
2016-02-03 10:16:22 +00:00
aseemgarg
6492686241
Add function tables to asm to wasm
...
R=titzer@chromium.org ,aseemgarg@chromium.org
BUG= https://code.google.com/p/v8/issues/detail?id=4203
TEST=test-asm-validator, asm-wasm.js
LOG=N
Review URL: https://codereview.chromium.org/1609893002
Cr-Commit-Position: refs/heads/master@{#33421}
2016-01-20 23:37:41 +00:00
bradnelson
3dcbc57e73
Allow asm modules to be instatiated with external heaps.
...
This merges the instantiation logic between instantiateModule
and instantiateModuleFromAsm.
BUG= https://code.google.com/p/v8/issues/detail?id=4203
TEST=asm-wasm
R=aseemgarg@chromium.org ,titzer@chromium.org
LOG=N
Review URL: https://codereview.chromium.org/1581913005
Cr-Commit-Position: refs/heads/master@{#33316}
2016-01-14 23:09:03 +00:00
bradnelson
090bf558f5
Reformat asm-wasm.js for increased readability.
...
BUG= https://code.google.com/p/v8/issues/detail?id=4203
TEST=asm-wasm
R=aseemgarg@chromium.org ,titzer@chromium.org
LOG=N
Review URL: https://codereview.chromium.org/1587213003
Cr-Commit-Position: refs/heads/master@{#33315}
2016-01-14 22:10:07 +00:00
aseemgarg
9933b03de8
Add __init__ function to all modules created in asm-to-wasm
...
TEST=asm-wasm.js
R=titzer@chromium.org ,bradnelson@google.com
BUG=
Review URL: https://codereview.chromium.org/1583603002
Cr-Commit-Position: refs/heads/master@{#33256}
2016-01-13 01:24:00 +00:00
aseemgarg
cd646f88a1
refactor BlockVisitor in asm to wasm and fix tests
...
TEST=asm-wasm.js
R=titzer@chromium.org ,bradnelson@google.com
BUG=
Review URL: https://codereview.chromium.org/1584573002
Cr-Commit-Position: refs/heads/master@{#33253}
2016-01-12 21:59:53 +00:00
titzer
995c9fe3dc
[wasm] Rename the WASM object to _WASMEXP_.
...
R=ahaas@chromium.org ,bradnelson@chromium.org
LOG=Y
BUG=chromium:575167
Review URL: https://codereview.chromium.org/1577803002
Cr-Commit-Position: refs/heads/master@{#33251}
2016-01-12 20:16:46 +00:00
titzer
ed6fea15a9
[wasm] Fix double to int conversions.
...
R=ahaas@chromium.org
LOG=Y
BUG=chromium:576560
Review URL: https://codereview.chromium.org/1574063005
Cr-Commit-Position: refs/heads/master@{#33239}
2016-01-12 13:47:01 +00:00
titzer
d672ee30c9
[wasm] Fix empty asm.js function in ASM->WASM.
...
R=ahaas@chromium.org
BUG=
Review URL: https://codereview.chromium.org/1574263002
Cr-Commit-Position: refs/heads/master@{#33238}
2016-01-12 13:34:19 +00:00
aseemgarg
210e65ed12
Add switch to asm to wasm
...
TEST=asm-wasm.js
R=titzer@chromium.org ,bradnelson@google.com
BUG=
Review URL: https://codereview.chromium.org/1573413002
Cr-Commit-Position: refs/heads/master@{#33220}
2016-01-12 02:02:51 +00:00
aseemgarg
7fdb0da001
Add do-while and conditional and mark non asm nodes as unreachable
...
TEST=asm-wasm.js
R=titzer@chromium.org ,bradnelson@chromium.org
BUG=
Add for loop to asm-to-wasm
TEST=asm-wasm.js
R=titzer@chromium.org ,bradnelson@google.com
Review URL: https://codereview.chromium.org/1530093002
Cr-Commit-Position: refs/heads/master@{#33101}
2016-01-04 23:47:08 +00:00
bradnelson
98d4fbfb2d
Add --enable-wasm to wasm tests.
...
In preparation for switching wasm from a compile to
a runtime option, add the runtime flag to all mjsunit tests.
R=ahaas@chromium.org
BUG=
Review URL: https://codereview.chromium.org/1537643002
Cr-Commit-Position: refs/heads/master@{#32938}
2015-12-17 10:54:55 +00:00
aseemgarg
1c8130bd89
Add for loop to asm-to-wasm
...
TEST=asm-wasm.js
R=titzer@chromium.org ,bradnelson@google.com
BUG=
Review URL: https://codereview.chromium.org/1523843003
Cr-Commit-Position: refs/heads/master@{#32895}
2015-12-16 12:10:33 +00:00
bradnelson
40cb3ce5f9
Adding OWNERS files to test directories for wasm.
...
R=mstarzinger@chromium.org
BUG=
Review URL: https://codereview.chromium.org/1526623002
Cr-Commit-Position: refs/heads/master@{#32839}
2015-12-14 14:22:15 +00:00
bradnelson
ff0cc4a4c1
Reland addition of init function for asm->wasm.
...
This relands this, in it's new home:
032faa8a90
R=titzer@chromium.org
BUG=
Review URL: https://codereview.chromium.org/1522473002
Cr-Commit-Position: refs/heads/master@{#32798}
2015-12-11 14:10:00 +00:00
titzer
4c5b3609fd
Initial import of v8-native WASM.
...
As discussed in person, this adds the code from v8-native-prototype into
V8 proper, guarded by GYP flags that do not build the code by default.
Passing wasm=on to 'make' or setting v8_wasm as a GYP flag activates
building of this code.
An additional header file is added to and exported from the compiler
directory, src/compiler/wasm-compiler.h. This exposes a limited interface
with opaque Node and Graph types to the decoder to build TF graphs, as
well as functions to compile WASM graphs.
The mjsunit tests added are blacklisted because they fail without the
WASM object exposed to JS, which is also disabled by the build config
option.
This corresponds closely to 5981e06ebc
, with some formatting fixes and moving some files into src/compiler.
R=mstarzinger@chromium.org , bradnelson@chromium.org
BUG=
Review URL: https://codereview.chromium.org/1504713014
Cr-Commit-Position: refs/heads/master@{#32794}
2015-12-11 12:27:05 +00:00