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
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
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
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