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